oracle数据库

oracle数据库
1.介绍一下oracle的体系结构
逻辑体系结构:块、区、段、表空间
物理体系结构:表空间,三大条件
软件体系结构:SGA、后台进程
2.简述oracle中SGA的组成部分
系统全局区包括:共享池、重做日志缓冲区、数据高速缓冲区、大池、java池
3.简述oracle的启动和关闭共有多少步骤
启动:启动实例、装载数据库数据、打开数据库
关闭:关闭数据库、卸载数据库数据、关闭实例
4.oracle数据库都有哪些类型的文件
数据文件、控制文件、日志文件、参数文件
5.oracle中我们自己所创建的表空间信息放在哪儿?
存放在数据字典中,数据字典内容对应于系统表空间SYSTEM表空间
6.控制文件都含有哪些信息
控制文件存放有实例信息(实例名创建时间等),数据文件和日志文件信息,还有系统运行时记录的系统变更码(SCN),检查点信息和归档的当前状态等信息。数据库在加载数据库的时候
首先要读取控制文件获得和数据库有关的物理结构信息之后才能够正确加载数据文件和日志文件并打开数据库。
7.表空间如何扩展(重点),并用语句写出?
两种方式:
1.字典管理方式 extent management dictionary;默认方式
2.本地管理方式:extent management local[autoallocate/uniform xxmb]<推荐>
8.分区表的应用
1.一个分区表一个或多个分区,每个分区通过使用范围分区、散列分区或组合分区分区的行
2.分区表中每一个分区为一个段,可各自位于不同的表空间中
3.对于同时能够使用几个进程进行查询或操作的大型分区表非常有用
9.存储过程为何既有输入又有输出?
create procedure pro_name(xxx x in/out type;yyyy in/out type;) is/as zzz type;
begin
sqlpro;
exception exceptionxxxxx;
commit;
end;
10.oracle中的异常有哪几类?
oracle有三种类型的异常。预定义异常、非预定义异常、用户定义的异常。其中非定义异常是与特定的oracle错误连接
11.oracle的优化策略?(对mysql同样适用)
优化的策略一般包括:内存优化、操作系统优化、数据存储的优化、网络优化等
具体待不同数据库涉及到要调整不同的数据库配置文件、不同的操作系统参数、网络参数等等
12.简单描述tablespace、segment、extent、bolck之间的关系
tablespace:一个数据库划分为一个或多个逻辑单位,该逻辑单位成为表空间,每一个表空间可能包含一个或多个segment
segments:segment指在tablespace中为特定逻辑存储结构分配的空间。每一个段是由一个或多个extent组成。包括数据段、索引段、回滚段和临时段
extents:一个extent是由一系列连续的oracle blocks组成。oracle通过extent给sigment分配空间
data blocks:oracle数据库中最小的I/O存储单位,一个data block对应一个或多个分配给data file的操作系统块
table创建时,默认创建了一个data segment含有min extents指定的extents数,每个extent根据表空间的存储参数分配一定数量的blocks
13.回滚段的作用是什么?
回滚段用于保存数据修改前的映像,这些信息用于生成读一致性数据库信息、在数据库恢复和rollback时使用。一个事务只能使用一个回滚段。
事务回滚:当事务修改表中数据的时候,该数据修改前的值(即前映像),会存放在回滚段中,当用户回滚事务时,oracle将会利用回滚段中的数据前映像来将修改的数据
恢复到原来的值
事务恢复:当事务正在处理的时候,例程失败,回滚段的信心保存在undo表空间中,oracle将在下次打开数据库的时候利用回滚来恢复未提交的数据
读一致性:当一个会话正在修改数据时,其他会话将看不到该会话未提交的修改。当一个语句正在执行时,该语句将看不到从该语句开始执行后的未提交的修改(语句级
读一致性)当oracle执行select语句时,oracle依照当前的系统改变号(SYSTEM CHANGE NUMBER-SCN)来保证任何前与当前scn的未提交的改变不被该语句处理
14.SGA主要有哪些部分,主要作用是什么?
系统全局区(SGA):是oracle为实例分配的一组共享缓冲存储区,用于存放数据库数据和控制信息,以实现对数据库数据的管理与操作。SGA主要包括:
1.共享池:用来存储最近执行的sql语句和最近使用的数据字典的数据
2.数据缓冲区:用来存储最近从数据文件中读写过的数据
3.重做日志缓冲区:用来记录服务或后台进程对数据库的操作。另外S中还有两个可选的内存结构
java pool:用来存储java代码
large pool:用来存储不与sql直接相关的大型内存结构。备份、恢复使用。
15.oracle系统主要进程有哪些?作用是什么?
数据写进程(DBWR):负责将更改的数据从数据缓冲区高速缓存写入数据文件
日志写进程(LGWR):将重做日志缓冲区中的更改写入在线重做日志文件
系统监控(SMON):负责在一个oracle进程失败是清理资源
检查点进程(SKPT):负责在每当缓冲区在高速缓存中的更改永久的记录在数据库时,更新控制文件和数据文件中的数据库状态信息
归档进程(ARCH):在每次日志切换时把已满的日志组进行备份或归档
恢复进程(RECO):保证分布式事务的一致性,在分布式事务中,要么同时commit,要么同时rollback
16.备份如何分类
逻辑备份:exp/imp指定表的逻辑备份
物理备份:
热备份:alter tablespace begin/end backup
冷备份:(database shutdown)
RMAN备份
full backup/incremental backup(累计/差异)
1.物理备份:物理备份时最主要的备份方式,用于保证数据库在最小数据丢失或者没有诗句丢失的情况下得到恢复
(1)冷物理:冷物理备份提供了最简单和最直接的方法保护数据库因物理损坏丢失。建议在一下几种情况下使用:
对一个已经存在大量数据的数据库,在晚间数据库可以关闭,此时应用冷物理备份。对数据库服务器进行升级(如更换硬盘),此时需要备份数据库信息
并在新的硬盘中恢复这些数据信息,建议采用冷物理备份
(2)热物理:主要指备份过程中在数据库打开并且用户可以使用的情况下进行,需要执行热物理备份的情况有:
由于数据库性质要求不间断工作,因而只能采用热物理备份,由于备份的时间的要求过长,而数据库只能短暂时间关闭时
2.逻辑备份(exp/imp)逻辑备份用于实现数据库对象的恢复,但不是基于时间点可完全恢复的备份策略。只能作为联机备份和脱机备份的一种补充
(1)完全逻辑备份:是将整个数据库导出到一个数据库的格式文件中,该文件可以在不同的数据库版本、操作系统 和硬件平台之间进行移植
(2)指定表的逻辑备份:通过备份工具,可以将指定的数据库表备份出来,这可以完全避免完全逻辑备份带来的时间上和财力上的浪费
17.数据库死锁的预防与解除
死锁发生的条件:
1.资源不能共享,需要只能由一个进程或线程使用
2.请求且保持,已经锁定的资源自己保持着不释放
3.不剥夺,自己申请到的资源不能被别人剥夺
4.循环等待
想预防死锁,把上面的条件破坏一个就可以
防止死锁的途径就是避免满足死锁条件的发生,为此,需要遵循一下原则。
1.尽量避免并发的执行涉及到修改数据的语句
2.要求每个事务一次就将所有要使用的数据加锁,否则就不予执行
3.预先设定一个封锁顺序,所有的事务都必须按照这个顺序对数据执行封锁。如不同的过程在事务内部对对象的更新执行顺序应该尽量保持一致
4.每个事务执行的时间不可太长,在业务允许的情况下可以考虑将事务分为几个小事务来执行
5.数据存储空间离散法。数据存储空间离散法是指采用各种手段,将逻辑上在一个表中的数据分散到若干离散的空间上去,以便改善对表的访问性能。
主要是通过将大表按行或者列分解为若干小表,或者按照不同的用户群分解两种方法实现。这种方法类似于”数据热点“,但是确实,如果数据不是太经常
被访问。那么死锁就不会太经常发生
6.还是类似1的,比如有一个修改上百条记录的update语句,我们可以修改成每10条一个update语句,或者直接就每条记录一个update语句
7。将经常跟新的数据库和查询数据库分开
18.oracle中的控制文件什么时候读取?
oracle服务器启动时,先启动实例然后在读取数据库的各个文件当然也包括控制文件。也就是说在数据库服务器启动的第二步时读取
19.oracle索引分为哪几类?
oracle索引有B树索引、位图索引、函数索引、簇索引
唯一索引也是B树索引的一种,他要求被索引的字段值不可以重复。在创建时使用B树算法创建
位图索引并不是采用像唯一索引那样存储(索引字段值,记录ROWID)来创建索引段的,而是为每一个唯一的字段值创建一个位图,位图中使用位元来对应一个记录的ROWID.
位元到ROWID是通过映射得到的
20.描述tablespace和datafile之间的关系?
一个表空间可以包含一个或多个数据文件,表空间利用增加或扩展数据文件扩展表空间,表空间的大小为组成该表空间的数据文件大小的和。一个datafile只能属于一个表空间
一个tablespacek可以有一个或多个datafile,每个datafile只能在一个tablespace内,table中的数据,通过hash算法分布在tablespace的各个datafile中,tablespace是逻辑
上的概念,datafile则在物理上存储了数据库的种种对象
21.解释什么是oracle database 11g系统中关键网格技术
Oralce中的'g'是grid的缩写,表示网格,网格计算是一种技术,能对同源不同数据类型的分布式网络进行无缝的、大规模的扩展,允许不同厂商的计算机共同工作来提供无尽的
共享计算机资源。比如,有两台pc机,分别来自不同的厂商,内存均为516M,先系统运行要求1G的内存,若pc机单独运行肯定不满足要求,可以通过网格计算和集群技术将两台
pc机组合在一起,以满足系统运行需求

原文地址:https://www.cnblogs.com/juddy/p/14143596.html