简述表空间和数据文件之间的关系.docx
《简述表空间和数据文件之间的关系.docx》由会员分享,可在线阅读,更多相关《简述表空间和数据文件之间的关系.docx(7页珍藏版)》请在冰豆网上搜索。
简述表空间和数据文件之间的关系
1、简述表空间和数据文件之间的关系。
2、概述Oracle数据库体系的物理结构。
3、简要介绍表空间、段、区和数据块之间的关系。
4、简述Oracle实例系统中各后台进程的作用。
5、简述Oracle初始化参数文件。
6、简述启动数据库时的状态。
7、简述数据库的各种关闭方式。
8、Oracle实例和数据库的概念和关系是什么?
9、SGA的各个组成部分的名称和作用,PGA与它有什么区别?
10、简述行迁移、行链接的产生原因?
14、truncate操作与delete操作的区别?
15、B-Tree与Bitmap索引的比较?
16、解释冷备份和热备份的不同点以及各自的优点
18、还原段的作用是什么
19、影响oracle数据库性能的因素都有哪些?
20、ORACLE数据库有哪几种标准备份方式?
21、对raid1+0和raid5有何认识?
22、rman是什么?
23、oracle系统后台进程的作用?
24、某数据运行在archivelog,且用rman作过全备份和数据库的冷备份,且所有的归档日志都有,现非system表空间的数据文件损坏,其他文件全部完好,请问该怎么恢复该数据库。
参考答案:
1.简述表空间和数据文件之间的关系。
答:
每一个数据文件都必须隶属于某个表空间,但一个表空间可以由多个数据文件组合而成。
tablespace是逻辑上的概念,datafile则在物理上储存了数据库的种种对象。
2.概述Oracle数据库体系的物理结构。
答:
Oracle数据库体系的物理结构是指数据库上实际的、可以从操作系统看到的文件,可以利用操作系统指令进行管理作业,物理存储结构组成文件如下所列:
数据文件(DataFile):
实际存储数据的地方;在线重做日志文件(OnlineRedoLogFile):
记录曾经发生过的动作,当数据库受损时,可利用在线重做日志文件进行必要的恢复动作;控制文件(ControlFile):
记录数据库必要的信息,以验证及维护数据库的完整性的信息;初始化参数文件(ParameterFile):
当数据库开启时,用来架构出Oracle内存结构的文件;密码文件(PasswordFile):
验证哪些帐号能开启、关闭Oracle数据库。
3.简要介绍表空间、段、区和数据块之间的关系。
答:
Oracle的逻辑存储单元从小到大依次为:
数据块、区、段和表空间。
它们之间的关系如
右图所示。
表空间又由许多段组成,段由多个
区组成,区又由多个数据块组成。
4.简述Oracle实例系统中各后台进程的作用。
答:
(1)DBWRn(DatabaseWriter)的主要工作是将数据
缓冲区中被改过的数据写回到数据文件里。
(2)LGWR(LogWriter)主要的工作是将RedoLogBuffer
里的记录写到在线重做日志文件中。
(3)SMON(SystemMonitor)有两个主要的功能。
<1>执行InstanceRecovery:
当数据库不正常中断后再度
开启时,SMON会自动执行InstanceRecovery,也
就是会将在线重做日志里面的数据回写到数据文件里面。
<2>收集空间:
将表空间内相邻的空间进行合并的动作。
(4)PMON(ProcessMonitor):
监视数据库的用户进程。
若用户的进程不当而被中断,PMON会负责清理任何遗留下来的资源,并释放失效的进程所保留的锁,然后从ProcessList中移除,以终止ProcessID。
(5)CKPT(Checkpoint)主要负责更新数据库的最新状态,CKPT当Checkpoint完成时,会更新控制文件和数据库文件的文件头。
(6)ARCn(Archiver).当Oracle数据库设定为ARCHIVELOGMode时,ARCn会在LogSwitch时自动将RedoLogFile复制一份到指定的目录下称为归档日志文件(Archivedredologs)。
5.简述Oracle初始化参数文件。
答:
Oracle在启动实例时将读取本地的一个文本文件,并利用从中获取的初始化参数对实例和数据库进行设置,这个文本文件称为初始化参数文件(简称PFILE)。
6.简述启动数据库时的状态。
答:
开启数据库分成4种状态。
(1)SHUTDOWN状态:
数据库是关闭的。
(2)NOMOUNT状态:
Instance被开启的状态,会去读取初始化参数文件。
(3)MOUNT状态:
会去读取控制文件。
数据库被装载。
(4)OPEN状态:
读取数据文件、在线重做日志文件等,数据库开启。
7.简述数据库的各种关闭方式。
答:
(1)正常关闭(SHUTDOWNNORMAL):
不允许新的USER连进来。
(2)事务关闭(SHUTDOWNTRANSACTIONAL):
等待所有未提交的事务完成后再关闭数据库。
(3)立即关闭(SHUTDOWNIMMEDIATE):
任何未提交的事务均被回退。
(4)终止关闭(SHUTDOWNABORT):
立即终止当前正在执行的SQL语句,任何未提交的事务均不被回退。
8.简述角色的优点。
答:
角色是具有名称的一组相关权限的组合。
角色的主要功能是将授予用户的权限做整合的管理。
由于角色集合了多种权限,可以为用户授予角色或从用户中收回角色,简化了用户权限的管理。
9、段的主要类型及作用?
答:
(1)数据段中保存的是表中的记录。
(2)索引段,在Oracle数据库中每个未分区索引都有一个索引段保存索引中的索引条目。
对于一个分区索引,每个分区都有一个索引段保存它的数据
(3)临时段,当处理查询时,Oracle可能会需要使用到一些临时存储空间,用于临时保存解析过的查询语句以及在排序过程中产生的临时数据。
Oracle会自动在专门用于存储临时数据的表空间为操作分配临时段。
(4)Undo段,Undo段用于存放数据修改之前的值(包括数据修改之前的位置和值)。
Undo段的作用主要有以下几方面:
<1>事务回滚<2>事务恢复<3>读一致性
10、Oracle实例和数据库的概念和关系是什么?
答:
在Oracle中,数据库指的是数据实际存放的地方,不论数据库是处于开启还是关闭的状态,永远都会存在于操作系统上;而实例指的是在计算机的一块内存空间,提供使用者做数据库上数据存取或数据交换的地方,由于这块空间放在内存中,因此,会随着数据库的开启而建构起来,当数据库关闭时,实例也就随之消失。
数据库:
数据库包含存在存储媒体上的一些文件。
实例:
实例是有一些内存空间及后台进程组合而成。
11、SGA的各个组成部分的名称和作用,PGA与它有什么区别?
答:
SGA包含三个部分:
(1)数据缓冲区:
主要用来存放最近使用过的数据,提升了查询的效率;
(2)日志缓冲区:
主要用来追踪最近修改过的数据记录,提升了数据修改的效率;(3)
共享池:
主要用来存放最近执行过的SQ指令、DataDirectionary与PL/SQL一些资料、table的定义和权限等,提升了程序执行的效率。
PGA是连接产生时被产生、当结束连接时PGA被结束,SGA是永远存在的;SGA内存是被多个联机共同使用的,而PGA只被一个连接专用。
12、简述行迁移、行链接的产生原因?
答:
行迁移(RowMigration):
Oracle数据库中的数据被存放在数据块中,当用UPDATE语句更新一行数据时,可能使该行的数据增加,从而无法使其再放入它的数据块中。
这时Oracle就寻找能容纳下该行的数据块,如果能找到这样的块,便把该行全部移入新块,这称为行迁移(RowMigration)。
行链接(ChainingRow):
若行太大找不到能容纳该整行的任何可用块,则Oracle将行分割为多个部分,然后把每一份分别放入一个块中,于是这样的行被存放在多个数据块中,这称为行链接(ChainingRow)。
13、简述pctused,pctfree运作情况?
答:
pctused与pctfree控制数据块是否出现在freelist中,pctfree控制数据块中保留用于update的空间,当数据块中的freespace小于pctfree设置的空间时,该数据块从freelist中去掉,当块由于dml操作freespace大于pct_used设置的空间时,该数据库块将被添加在freelist链表中。
14、truncate操作与delete操作的区别与联系?
答:
(1)无论truncate大表还是小表速度都非常快。
(2)truncate是DDL语句进行隐式提交,操作立即生效,不能进行回滚操作。
delete语句是dml,这个操作会放到rollbacksegement中,事务提交之后才生效。
(3)truncate重新设定表和索引的HWM(高水标记),由于全表扫描和索引快速扫描都要读取所有的数据块直到HWM为止。
所以全表扫描的性能不会因为delete而提高,但是经过truncate操作后速度会很快。
(4)不能truncate一个带有外键的表,如果要删除首先要取消外键,然后再删除。
相同点:
truncate和delete只删除数据不删除表的结构(定义)。
15、B-Tree与Bitmap索引的比较?
答:
B-Tree索引结构的键值后面跟着ROWID,位图索引是在索引的叶块中存储的是位图信息,而不是rowid。
(1)如果表中的索引列的取值只有有限的几个,就可以在此列上采用位图索引。
因为此时在位图索引上根据列的取值,每条记录得到一个0/1值,在位图索引中就可以存储这些0/1值。
(2)如果一张表中的值经常需要进行修改,此时不能使用位图索引,因为对表的值进行修改后对应的位图值也要进行修改,但是对于B-Tree索引而言,ROWID是不会改变的。
所以对于表中的值需要经常修改的,不宜采用位图索引。
(3)由于位图索引的特性,在索引的列值上进行相等/OR/AND等逻辑操作时,使用位图索引进行查询,将会大大提高查询速度。
因为在进行这些操作时,进行的是一些逻辑操作,这是计算机最拿手的。
但是,如果要在索引列上进行大于/小于等查询操作,此时使用位图索引不但不能提高性能,反而会降低性能,因为位图索引中存储的一些0/1位图,这些0/1串要通过映射才能够转化为rowid,从而得到对应的值,然后进行比较,这样性能会大大下降。
(4)位图索引可以节省大量的存储空间,这对于数据量特别大的情形,就特别明显了。
另外,在位图索引中可以包含键值为NULL的行。
16、解释冷备份和热备份的不同点以及各自的优点
答:
热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。
而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。
热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。
冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下。
因为不必将archivelog写入硬盘,非归档模式可以带来数据库性能上的少许提高。
17、简述带前缀的视图的区别:
V$,DBA_,ALL_,USER_
答:
V$开头的是描述实例运行的动态性能视图,DBA_,数据库中数据字典的信息,ALL_,用户具有操作权限的对象 信息,USER_,用户所拥有的对象的信息。
影响oracle查询性能的因素都有哪些?
18、回滚段的作用是什么
答:
事务回滚:
当事务修改表中数据的时候,该数据修改前的值(即前影像)会存放在回滚段中,当用户回滚事务(ROLLBACK)时,ORACLE将会利用回滚段中的数据前影像来将修改的数据恢复到原来的值。
事务恢复:
当事务正在处理的时候,例程失败,回滚段的信息保存在undo表空间中,ORACLE将在下次打开数据库时利用回滚来恢复未提交的数据。
读一致性:
当一个会话正在修改数据时,其他的会话将看不到该会话未提交的修改。
当一个语句正在执行时,该语句将看不到从该语句开始执行后的未提交的修改(语句级读一致性)当ORACLE执行SELECT语句时,ORACLE依照当前的系统改变号(SYSTEMCHANGENUMBER-SCN)来保证任何前于当前SCN的未提交的改变不被该语句处理。
可以想象:
当一个长时间的查询正在执行时,若其他会话改变了该查询要查询的某个数据块,ORACLE将利用回滚段的数据前影像来构造一个读一致性视图。
19、影响oracle数据库性能的因素都有哪些?
答:
(1)系统环境的优化,包括硬件、磁盘阵列的规划、网络架构、操作系统的规划
(2)实例的优化:
数据库缓冲区、重做日志缓冲区、共享池的设置
(3)oracle对象的优化:
数据块的设置、存储参数的设置、表空间的设置、表空间碎片
(4)SQL语法优化
20、ORACLE数据库有哪几种标准备份方式?
答:
(1)逻辑备份(EXP/IMP)。
利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。
(2)物理备份
<1>热备份。
热备份是在数据库运行的情况下,采用archivelogmode方式备份数据库的方法。
①在线的tablespace的备份
>altertablespacetablespace_namebeginbackup;
>执行系统的备份文件命令cp
>altertablespacetablespace_nameendbackup;
②离线的tablespace的备份
>altertablespacetablespace_nameofflinenormal;
>执行操作系统备份的命令
>altertablespacetablespace_nameonline;
<2>冷备份。
冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。
<3>RMAN备份
21、对raid1+0和raid5有何认识
答:
RAID10(或称RAID1+0)与RAID0+1不同,它是用硬盘驱动器先组成RAID1阵列,然后在RAID1阵列之间再组成RAID0阵列。
RAID10模式同RAID0+1模式一样具有良好的数据传输性能,但却比RAID0+1具有更高的可靠性。
RAID10阵列的实际容量为M×n/2,磁盘利用率为50%。
RAID10也需要至少4个硬盘驱动器构成,因而价格昂贵。
RAID10的可靠性同RAID1一样,但由于RAID10硬盘驱动器之间有数据分割,因而数据传输性能优良。
RAID5与RAID3很相似,不同之处在于RAID5的奇偶校验信息也同数据一样被分割保存到所有的硬盘驱动器,而不是写入一个指定的硬盘驱动器,从而消除了单个奇偶校验硬盘驱动器的瓶颈问题。
RAID5磁盘阵列的性能比RAID3有所提高,但仍然需要至少3块硬盘驱动器。
其实际容量为M×(n-1),磁盘利用率为(n-1)/n。
22、对于一个存在系统性能的系统,说出你的诊断处理思路
答:
1用statspack收集系统相关信息
了解系统大致情况/确定是否存在参数设置不合适的地方/查看top5event/查看topsql等
2查v$system_event/v$session_event/v$session_wait
从v$system_event开始,确定需要什么资源(dbfilesequentialread)等
深入研究v$session_event,确定等待事件涉及的会话
从v$session_wait确定详细的资源争用情况(p1-p3的值:
file_id/block_id/blocks等)
3通过v$sql/v$sqltext/v$sqlarea表确定disk_reads、(buffer_gets/executions)值较大的SQL
22、rman是什么?
RMAN(RecoveryManager)是DBA的一个重要工具,用于备份、还原和恢复oracle数据库,RMAN可以用来备份和恢复数据库文件、归档日志、控制文件、系统参数文件,也可以用来执行完全或不完全的数据库恢复。