文档库

最新最全的文档下载
当前位置:文档库 > 数据库复习材料

数据库复习材料

Oracle数据库体系结构

一、填空题

1.Oracle数据库系统的物理存储结构主要由3类文件组成,分别为数据文件、日志文件、控制文件。

2.用户对数据库的操作如果产生日志信息,则该日志信息首先被存储在日志缓冲区中,随后由LGWR 进程保存到日志文件中。

3.一个表空间物理上对应一个或多个数据文件。

4.在Oracle的逻辑存储结构中,根据存储数据类型,可以将段分为数据段、索引段、回退段、LOB段或临时段。

5.在Oracle的逻辑存储结构中,数据块是最小的I/O单元。

6. 表空间的管理类型可以分为本地管理和字典管理.

7.在ORACLE系统中,为了实现对表,视图和索引等数据库对象进行了管理,ORACLE 采用模式实现。

8.一个模式只能够被一个数据库用户所拥有,其创建的所有模式对象都保存在自己的模式中。

9如果定义了CHAR数据类型的字段,并且向其赋值时,字符串的长度小于定义的长度,则使用空格填充;而V ARCHAR2类型的字段用于存储变长的字符串,即如果向该列赋的字符长度小于定义时的长度,该列的字符长度只会是实际字符数据的长度,系统不会使用空格填充。

10.ROWID实际上保存的是记录的物理地址,因此通过ROWID来访问记录可以获得最快的访问速度。

11.在创建表空间命令的STORAGE子句中可以设置6个存储参数。其中,INITIAL指定为表中的数据分配的第一个盘区大小;NEXT指定为存储表中的数据分配的第二个盘区大小;PCTINCREASE指定从第二个盘区之后,每个盘区相对于上一个盘区的增长百分比;MINEXTENTS指定允许为表中的数据所分配的最小盘区数目;MAXEXTENTS指定允许为表中的数据所分配的最大盘区数目。

12.通过数据块空间管理参数可以控制数据块中空闲空间的使用方法,其中PCTFREE用于控制数据块的更新预留的空间,而PCTUSED用于控制数据块在删除时释放空间的门槛。13、如果出现了失败故障,用户修改的数据没有永久地写到数据文件里,那么就可以利用(控制文件)找到数据的更改,这样做过的工作就不会丢失了.

14、(控制文件)是一个小的二进制文件,它维护着数据库的全局物理结构,用以支持数据库成功地启动和运行.

15、表空间是Oracle数据库中数据的逻辑组织,每个数据库至少有一个(SYSTEM系统)表空间.

16、(DBWR)进程把修改过的数据块从内存写回到数据库的数据文件中.

17、当用户进程出错,PMON后台进程负责清理它

18、创建数据库时自动建立的tablespace名称SYSTEM tablespace

19、数据库表空间一般分为永久性表空间、还原表空间、临时表空间

二、选择题

1.下列选项中,哪一部分不是Oracle实例的组成部分? C

A.系统全局区SGA

B.PMON后台进程

C.控制文件

D.Dnnn调度进程

2.在全局存储区SGA中,哪部分内存区域是循环使用的? B

A.数据缓冲区

B.日志缓冲区

C.共享池

D.大池

3.解析后的SQL语句在SGA的哪个区域中进行缓存? C

A.数据缓冲区

B.日志缓冲区

C.共享池

D.大池

4.如果一个服务器进程非正常终止,Oracle系统将使用下列哪一个进程来简介释放它所占用的资源? D

A.DBWR

B.LGWR

C.SMON

D.PMON

5.如果服务器进程无法在数据缓冲区中找到空闲缓存块,以添加从数据文件中读取的数据块,则将启动如下哪一个进程? D

A.CKPT

B.SMON

C.LGWR

D.DBWR

6.下列关于共享服务器模式的叙述哪一项不正确?A

A.在共享服务器操作模式下,每一个用户进程必须对应一个服务器进程

B.一个数据库实例可以启动多个调度进程

C.在共享服务器操作模式下,Oracle实例将启动调度Dnnn为用户进程分配服务进程

D.共享服务器操作模式可以实现少量服务器进程为大量用户进程提供服务

7.当数据块运行在归档下时,如果发生日志切换,为了保证不覆盖旧的日志信息,系统将启动如下哪一个进程? D

A.DBWR

B.LGWR

C.SMON

D.ARCH

8.下列哪一个进程和数据库部件可以保证用户对数据库所做的修改在没有保存的情况下,不会发生丢失修改数据? B

A.DBWR和数据文件

B.LGWR和日志文件组

C.CKPT和控制文件

D.ARCH和归档日志文件

9.下列哪一个进程用于将修改过的数据从内存保存到磁盘数据文件中?A

A.DBWR B.LGWR C.RECO D.ARCH

10.如果要查询数据库中所有表的信息,应当使用下列哪种数据字典视图?A

A.DBA视图

B.ALL视图

C.USER视图

D.动态性能视图

11.下列哪一项是Oracle数据库中最小的存储分配单元? C

A.表空间

B.段

C.盘区

D.数据块

12.下面的各选项中哪一个正确描述了Oracle数据块的逻辑储存结构?A

A.表空间由段组成,段由盘区组成,盘区由数据块组成

B.段由表空间组成,表空间由盘区组成,盘区由数据块组成

C.盘区由数据块组成,数据块由段组成,段由表空间组成

D.数据块由段组成,段由盘区组成,盘区由表空间组成

13. 在创建表空间时, 可以指定表空间中存储对象的默认存储参数, 其中_____A______参数用于设置分配给每一个对象的初始区大小.

A. INITIAL

B. NEXT

C. PCTINCREASE

D. MINEXTENTS

14.下列哪个对象属于模式对象?C

A.数据段

B.盘区

C.表

D.表空间

15.关于模式的描述下列哪一项不正确?C

A.表或索引等模式对象一定属于某一个模式

B.在ORACLE数据库中,模式与数据库用户是一一对应的

C.一个表可以属于多个模式

D.一个模式可以拥有多个表

16.如果一个表中某条记录的一个字段暂时不具有任何值,那么在其中将保存什么内容?D

A.空格字符

B.数字0

C.NULL

D.该字段数据类型的默认值

17. 下列哪一项不是伪列ROWID的作用?D

A.保存记录的物理地址

B.快速查询指定的记录

C.标识各条记录

D.保存记录的头信息

18.为了减少表中的迁移记录,应该增大表的哪一个存储参数?A

A.PCTFREE

B.PCTUSEDC

C.MAXEXTENTS

D.PCTINCREASE

oracle基本对象

(表、索引、视图、序列、同义词)

一、填空题

1. 在B树索引中,通过在索引中保存排过序的索引列值与相对应记录的ROWID来实现快速查找。

2. 如果表中某列的基数比较低,则应该在该列上创建位图索引。

3.下面的语句创建了一个序列对象,该序列对象的开始数为2,每次递增2,当大于1000后,序列值重新返回到2。在空白处填写适当的代码,完成上述要求。

create sequence seg_test

_start with 2_________

_increment by 2______

_maxvalue 1000______

_cycle______________;

4、如果要获取数据库中创建的配置文件的信息,可以通过查询数据字典视图DBA_ PROFILES

视图.

5、在ORACAL数据库中将权限分为两类,即系统权限和对象权限。系统权限是指在系统级控制数据库的存取和使用机制,对象权限是指在模式对象上控制数据库的存取和使用的机制。

6、角色是具有名称的一组相关的一组相关权限的组合。

7、Oracle 10g提供了一些预定义角色,供用户用于数据库管理。在创建数据库的过程中这些角色作为创建脚本的一部分自动被创建。其中,(RESOURCE)角色用于典型的应用程序开发员。该角色允许授权者在相关的模式中创建表、序列、数据簇、过程、函数、包、触发器、对象类型等。

二、选择题

1、假设用户USER1的默认表空间为USERS,他在该表空间的配额为10MB,则USER1在USERS表空间创建基本表时,他应具有什么权限?(A)

A、CREA TE TABLE

B、CREA TE USER

C、UNLIMITED TABLESPACE

D、LIMITED TABLESPACE

2、检查下面的SQL语句,哪一项是错误的?(B)

Alter user tempuser

Identified by oracle

Default tablespace users

Default temporary tablespace temp

Quota 100M on users

A、Default tablespace users

B、Default temporary tablespace temp

C、Quota 100M on users

D、Identified by oracle

3、想在另一个模式中创建表,用户最少应该具有什么系统权限?(B)

A、CREA TE TABLE

B、CREA TE ANY TABLE

C、RESOURCE

D、DBA

4、下面哪个系统预定义角色允许一个用户创建其他用户?( B)

A、CONNECT

B、DBA

C、RESOURCE

D、SYSDBA

5.在下列模式对象中,哪个对象不会占用实际的存储空间?____A_____

A. 视图

B. 表

C. 索引 C. 簇

6.在下列各选项中,关于序列的描述哪一项是不正确的?___ D___

A. 序列是Oracle提供的用于产生一系列唯一数字的数据库对象

B. 序列并不占用实际的存储空间

C. 使用序列时,需要用到序列的两个伪列NEXTV AL与CURRV AL。其中,NEXTV AL将返回序列生成的下一个值,而CURRV AL返回序列的当前值

D. 在任何时候都可以使用序列的伪列CURRV AL,以返回当前序列值

7. 在下列各选项中,关于同义词的描述哪一项是不正确的?___B____

A. 同义词是数据库对象的一个替代名,在使用同义词时,Oracle会将其翻译为对应的对象名称

B. 在创建同义词时,所替代的模式对象必须存在

C. Oracle中的同义词分为公有同义词和私有同义词

D. 公有同义词在数据库中所有的用户都可以使用;私有同义词由创建它的用户所拥有

8. 假设EMPLOYEE表包含一个MARRIAGE列,用于描述职工的婚姻状况,则应该在该字段上创建什么类型的索引?____D_____________

A. B树唯一索引

B. B树不唯一索引

C. 基于函数的索引

D. 位图索引

9. 如果经常执行类似于下面的查询语句:

SELECT * from student

where Substrb(sname,0,2)=’刘’

应当为STUDENT表中的SNAME列创建哪一种类型的索引?_____D___________

A.B树唯一索引

B.位图索引

C.B树不唯一索引

D.基于函数的索引

10. 假设在一个表的3个字段NAME、SEX和MONTH_OF_BIRTH中分别保存姓名、性别和出生的月份数据,则应当为这3个字段分别创建何种类型的索引?___D_____

A.全部创建B树索引

B.全部创建位图索引

C.分别创建B树索引、位图索引和位图索引

D.分别创建B树索引、位图索引和其于函数的索引

数据库启动与关闭

一、填空题

1、可通过在SQL*Plus中查询动态视图(V$INSTANCE)来查看实例的禁止操作状态.

2、数据库处于(关闭)状态的时候,用户就可以在没有I/O影响的情况下备份一个数据库.

3、启动数据库时,如果装载数据库但不打开数据库可执行(STARTUP MOUNT)命令.

二、选择题

1 将数据库启动到装载状态的命令

A: startup

B: startup nomount

C: startup mount

D: startup open

答案: C

2 使用shutdown命令关闭数据库,发生的次序是

A: 先关闭实例进程

B: 先关闭数据库

C: 先卸载数据库

D: 没有先后次序

答案: B

3 执行shutdown transactional命令

A: 数据库仍然允许新的用户连接

B: 数据库马上关闭

C: 等待当前所有会话结束后关闭

D: 如果没有执行中的数据库事物,即马上关闭

答案: C

4 服务器断电,发生的现象是哪一个?

A: 数据缓冲区的修改写入数据库

B: 没有提交的事物自动撤销

C: 数据文件、控制文件和日志文件处于不一致状态

D: 下次启动,需要进行手工恢复

答案: B

5 用户SCOTT正在执行UPDA TE语句,需要保证SCOTT的修改操作完成,理想的关闭实例方式是

A: SHUTDOWN ABORT

B: SHUTDOWN IMMEDIA TE

C: SHUTDOWN TRANSACTIONAL

D: SHUTDOWN NORMAL

答案: C

6 在哪种关闭方式下,SMON进程要对数据库实例进行恢复

A: NORMAL

B: TRANSACTIONAL

C: IMMEDIA TE

D: ABORT

答案: D

7 静态初始化参数文件的特点是

A: 文件是文本文件形式

B: 启动实例优先选用

C: 总是驻留在服务器端

D: 能够动态进行参数的修改

答案: A

8 数据库启动的哪个阶段打开控制文件

A: 启动实例阶段

B: 装载数据库阶段

C: 打开数据库阶段

D: 关闭数据库阶段

答案: B

9 数据库处于哪个状态,可以创建数据库

A: SHUTDOWN

B: NOMOUNT

C: MOUNT

D: OPEN

答案: B

备份与恢复

一、填空题

1、物理备份分为冷备份(离线备份)、热备份(在线备份。

2、当数据库在__NOARCHIVELOG _模式中运行时,无法使用单个备份文件对数据库进行

恢复。因为对模式数据库进行恢复时,必须使用所有的数据库备份,使数据库恢复后处于一致状态。

3、手动进行介质恢复时,按照数据库恢复后的运行状态不同,介质恢复为分为__完全数据

库恢复__、和___不完全数据库恢复_____。完全恢复就是恢复所有已经提交的事务,即将数据库、表空间或数据文件的备份更新到最近的时间。__不完全恢复__使用数据库的备份来对数据库进行恢复,即将数据库恢复到某一特定的时刻。

4、使用EXP命令导出数据时,可以根据需要按3种不同的方式导出数据。__表方式___方

式就是导出一个指定的基本表,包括表的定义、表中的数据,以及在表上建立的索引、约束等。___用户__方式是指导出属于一个用户的所有对象,包括表、视图、存储过程、序列等。___整个数据库___方式导出是指导出数据库中所有对象。

5、在进行部分联机备份时,由于数据库仍然在正常运行,因此在备份过程中,必须使用

_ALTER TABLESPACE tablespace_name BEGIN BACKUP_命令使数据文件相对应的表空间出于备份模式。在备份结束后,使用__ALTERTABLESPACE tablespace_name END BACKUP_命令恢复表空间到正常状态。

6、Oracle数据库的启动过程可以分为3个阶段:__启动数据库实例__、加载数据库文件、-

_打开数据库_。在__在启动数据库实例__阶段,需要完成3个操作:读取定义启动参数的文件、分配SGA区、启动后台进程。加载数据库文件则是将数据库文件与启动的实例相关联。在__在加载数据库文件_阶段,系统会读取参数文件中指定的控制文件。

7、使用RMAN进行目标数据库的备份时,可以使用_COPY_和_BACKUP_命令。__COPY__命令用于数据文件备份,可以将指定的数据库文件备份到磁盘或磁带。__BACKUP__命令是数据的备份,可以复制一个或多个表空间,以及整个数据库中的数据。

二、选择题

1.Oracle支持多种类型的不完全备份,下列哪一个不是Oracle所支持的不完全备份?

__B___

A.基于时间的不完全备份

B.基于用户的不完全备份

C.基于撤消的不完全备份

D.基于更改的不完全备份

2.下面哪一种不完全恢复需要使用SCN号作为参数?__C___

A. 基于时间的不完全备份

B.基于撤消的不完全备份

C.基于更改的不完全备份

D.基于顺序的不完全备份

3.执行不完全恢复时,数据库必须处于什么状态?__D___

A.shutdown

B.nomount

C.open

D.Mount

4. 要改变数据库的归档模式,数据库应处于哪种状态下c

A. SHUTDOWN

B. NOMOUNT

C. MOUNT

D. OPEN

5. 使用RMAN进行介质恢复时,执行命令的顺序是什么?__A_____

A.RESTORE、RECOVER

B.R ECOVER、RESTORE

C.C OPY、BACKUP

D.COPY、RECOVER

6. 下列哪一个操作可以用来为一个备份操作手动分配通道?__A____

A.ALLOCA TE CHANNEL

B.C REA TE CHANNEL

C.C HANNEL ALLOCA TE

D.CREA TE LINK

7. 下列哪一个命令用来显示RMAN通道的配置信息?___C___

A.LIST

B.D ISPLAY

C.S HOW

D.都可以

8. 下列哪一个命令可以用来执行不完全恢复?___B___

A.RESTORE DA TABASE UNTIL

B.R ECOVER DA TABASE UNTIL

C.R ECOVER DA TA UNTIL

D.RESTORE DA TA UNTIL

9. 如果想查看当前数据库是否处于自动归档模式,应当使用下列哪个命令? A

A. ARCHIVE LOG LIST

B. ARCHIVE LOG ALL

C. ARCHIVE LOG NEXT

D. ARCHIVE LOG START

简答题

1. 简述表空间和数据文件之间的关系。

答:每一个数据文件都必须隶属于某个表空间,但一个表空间可以由多个数据文件组合而成。 tablespace 是逻辑上的概念,datafile 则在物理上储存了数据库的种种对象。

2. 概述Oracle 数据库体系的物理结构。

答:Oracle 数据库体系的物理结构是指数据库上实际的、可以从操作系统看到的文件,可以利用操作系统指令进行管理作业,物理存储结构组成文件如下所列:数据文件(Data File ):实际存储数据的地方;在线重做日志文件(Online Redo Log File ):记录曾经发生过的动作,当数据库受损时,可利用在线重做日志文件进行必要的恢复动作;控制文件(Control File ):记录数据库必要的信息,以验证及维护数据库的完整性的信息;初始化参数文件(Parameter File ):当数据库开启时,用来架构出Oracle 内存结构的文件;密码文件(Password File ):验证哪些帐号能开启、关闭Oracle 数据库。

3. 简要介绍表空间、段、区和数据块之间的关系。

答:Oracle 的逻辑存储单元从小到大依次为: 数据块、区、段和表空间。它们之间的关系如 右图所示。表空间又由许多段组成,段由多个 区组成,区又由多个数据块组成。

4. 简述Oracle 实例系统中各后台进程的作用。

答:(1)DBWRn(Database Writer)的主要工作是将数据

缓冲区中被改过的数据写回到数据文件里。

(2)LGWR(Log Writer)主要的工作是将Redo Log Buffer

里的记录写到在线重做日志文件中。

(3)SMON(System Monitor)有两个主要的功能。

<1>执行Instance Recovery:当数据库不正常中断后再度

开启时,SMON 会自动执行Instance Recovery,也

就是会将在线重做日志里面的数据回写到数据文件里面。

<2>收集空间:将表空间内相邻的空间进行合并的动作。

(4)PMON(Process Monitor):监视数据库的用户进程。若用户的进程不当而被中断,PMON 会负责清理任何遗留下来的资源,并释放失效的进程所保留的锁,然后从Process List 中移除,以终止Process ID 。

(5)CKPT(Checkpoint)主要负责更新数据库的最新状态,CKPT 当Checkpoint 完成时,会更新控制文件和数据库文件的文件头。

(6)ARCn(Archiver).当Oracle 数据库设定为ARCHIVELOG Mode 时,ARCn 会在Log Switch 时自动将Redo Log File 复制一份到指定的目录下称为归档日志文件(Archivedredologs )。

5. 简述Oracle 初始化参数文件。

答:Oracle 在启动实例时将读取本地的一个文本文件,并利用从中获取的初始化参数对实例表空间 段 区 块 块 区 块

块 段 区 块 块 区 块 块

和数据库进行设置,这个文本文件称为初始化参数文件(简称PFILE)。

6.简述启动数据库时的状态。

答:开启数据库分成4种状态。

(1)SHUTDOWN状态:数据库是关闭的。

(2)NOMOUNT状态:Instance被开启的状态,会去读取初始化参数文件。

(3)MOUNT状态:会去读取控制文件。数据库被装载。

(4)OPEN状态:读取数据文件、在线重做日志文件等,数据库开启。

7.简述数据库的各种关闭方式。

答:(1)正常关闭(SHUTDOWN NORMAL):不允许新的USER连进来。

(2)事务关闭(SHUTDOWN TRANSACTIONAL):等待所有未提交的事务完成后再关闭数据库。

(3)立即关闭(SHUTDOWN IMMEDIA TE):任何未提交的事务均被回退。

(4)终止关闭(SHUTDOWN ABORT):立即终止当前正在执行的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指令、Data Directionary与PL/SQL一些资料、table 的定义和权限等,提升了程序执行的效率。PGA是连接产生时被产生、当结束连接时PGA 被结束,SGA是永远存在的;SGA内存是被多个联机共同使用的,而PGA只被一个连接专用。

12、简述行迁移、行链接的产生原因?

答:行迁移(RowMigration):Oracle数据库中的数据被存放在数据块中,当用UPDA TE语句更新一行数据时,可能使该行的数据增加,从而无法使其再放入它的数据块中。这时Oracle 就寻找能容纳下该行的数据块,如果能找到这样的块,便把该行全部移入新块,这称为行迁

移(Row Migration)。行链接(Chaining Row):若行太大找不到能容纳该整行的任何可用块,则Oracle将行分割为多个部分,然后把每一份分别放入一个块中,于是这样的行被存放在多个数据块中,这称为行链接(Chaining Row)。

13、简述pctused ,pctfree 运作情况?

答:pctused与pctfree控制数据块是否出现在freelist中,pctfree控制数据块中保留用于update 的空间,当数据块中的free space小于pctfree设置的空间时,该数据块从freelist中去掉,当块由于dml操作free space大于pct_used设置的空间时,该数据库块将被添加在freelist链表中。

14、truncate操作与delete操作的区别与联系?

答:(1)无论truncate大表还是小表速度都非常快。(2)truncate是DDL语句进行隐式提交,操作立即生效,不能进行回滚操作。delete语句是dml,这个操作会放到rollback segement 中,事务提交之后才生效。(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、解释冷备份和热备份的不同点以及各自的优点

答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下。因为不必将archive log写入硬盘,非归档模式可以带来数据库性能上的少许提高。

17 、简述带前缀的视图的区别:V$,DBA_,ALL_,USER_

答:V$开头的是描述实例运行的动态性能视图,DBA_,数据库中数据字典的信息,ALL_,用户具有操作权限的对象信息,USER_,用户所拥有的对象的信息。

影响oracle查询性能的因素都有哪些?

18、回滚段的作用是什么

答:事务回滚:当事务修改表中数据的时候,该数据修改前的值(即前影像)会存放在回滚段中,当用户回滚事务(ROLLBACK)时,ORACLE将会利用回滚段中的数据前影像来将修改的数据恢复到原来的值。

事务恢复:当事务正在处理的时候,例程失败,回滚段的信息保存在undo表空间中,ORACLE将在下次打开数据库时利用回滚来恢复未提交的数据。

读一致性:当一个会话正在修改数据时,其他的会话将看不到该会话未提交的修改。当一个语句正在执行时,该语句将看不到从该语句开始执行后的未提交的修改(语句级读一致性)当ORACLE执行SELECT语句时,ORACLE依照当前的系统改变号(SYSTEM CHANGE NUMBER-SCN)来保证任何前于当前SCN的未提交的改变不被该语句处理。可以想象:当一个长时间的查询正在执行时,若其他会话改变了该查询要查询的某个数据块,ORACLE将利用回滚段的数据前影像来构造一个读一致性视图。

19、影响oracle数据库性能的因素都有哪些?

答:(1) 系统环境的优化,包括硬件、磁盘阵列的规划、网络架构、操作系统的规划

(2) 实例的优化:数据库缓冲区、重做日志缓冲区、共享池的设置

(3) oracle对象的优化:数据块的设置、存储参数的设置、表空间的设置、表空间碎片

(4) SQL语法优化

20、ORACLE数据库有哪几种标准备份方式?

答:(1)逻辑备份(EXP/IMP)。

利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。

(2)物理备份

<1>热备份。

热备份是在数据库运行的情况下,采用archivelog mode方式备份数据库的方法。

①在线的tablespace的备份

>alter tablespace tablespace_name begin backup;

>执行系统的备份文件命令cp

>alter tablespace tablespace_name end backup;

②离线的tablespace的备份

>alter tablespace tablespace_name offline normal;

>执行操作系统备份的命令

>alter tablespace tablespace_name online;

<2>冷备份。

冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完

整的数据库。

<3>RMAN备份

21、对raid1+0 和raid5有何认识

答:RAID 10(或称RAID 1+0)与RAID 0+1不同,它是用硬盘驱动器先组成RAID 1阵列,然后在RAID 1阵列之间再组成RAID 0阵列。RAID 10模式同RAID 0+1模式一样具有良好的数据传输性能,但却比RAID 0+1具有更高的可靠性。RAID 10阵列的实际容量为M×n/2,磁盘利用率为50%。RAID 10也需要至少4个硬盘驱动器构成,因而价格昂贵。RAID 10的可靠性同RAID 1一样,但由于RAID 10硬盘驱动器之间有数据分割,因而数据传输性能优良。RAID 5与RAID 3很相似,不同之处在于RAID 5的奇偶校验信息也同数据一样被分割保存到所有的硬盘驱动器,而不是写入一个指定的硬盘驱动器,从而消除

了单个奇偶校验硬盘驱动器的瓶颈问题。RAID 5磁盘阵列的性能比RAID 3有所提高,但仍然需要至少3块硬盘驱动器。其实际容量为M×(n-1),磁盘利用率为(n-1)/n 。

22、对于一个存在系统性能的系统,说出你的诊断处理思路

答: 1 用statspack收集系统相关信息

了解系统大致情况/确定是否存在参数设置不合适的地方/查看top 5 event/查看top sql等

2 查v$system_event/v$session_event/v$session_wait

从v$system_event开始,确定需要什么资源(db file sequential read)等

深入研究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(Recovery Manager)是DBA的一个重要工具,用于备份、还原和恢复oracle 数据库, RMAN 可以用来备份和恢复数据库文件、归档日志、控制文件、系统参数文件,也可以用来执行完全或不完全的数据库恢复。

操作题

1.为ORCL数据库创建一个EXERCISE表空间,其数据文件为D:\ORACLE\ORADA TA\ORCL\exercise01.dbf,大小为50MB,设为自动增长,增量10MB,文件最大为1000MB。

Create tablespace exerciese datafile ’d:\ ORACLE\ORADA TA\ORCL\exercise01.dbf’size 50m AUTOEXTEND ON NEXT 10M MAXSIZE 1000M;

2.为EXERCISE表空间添加一个新的数据文件,名称为D:\ORACLE\ORADA TA\ORCL\exercise02.dbf,大小为50MB,文件可以自动扩展,最大大小为150M。

Alter tablespace exercise add datafile ‘D:\ORACLE\ORADA TA\ORCL\exercise02.dbf’SIZE 50M autoextend on maxsize 150m;

3. 创建用户,用户名为zhangsan;采用数据库认证方式,口令zhangsan;指定默认表空间为users,可使用配额为200M;指定临时表空间为temp;同时该用户在system表空间可使用配额为100M。

Create user zhangsan identified by zhangsan default tablespace users temporary tablespace temp quota 200m on users quota 100m on system;

6.修改用户默认表空间配额为300M,给该用户解锁。

Alter user zhangsan quota 300m on users;

Alter user zhangsan account unlock;

7.为用户zhangsan授予创建表、修改表、删除表的权限,并拥有将这些权限授权他人的权利;为上述用户授予查询Scott模式Dept表的权限,并拥有将此权限授权他人的权利。

Grant create table,alter any table ,drop any table to zhangsan with admin option; (create table (用户创建表,只能给自己创建表)create any table(不仅给自己创建表,还可以给其他用户创建表))

Grant select on scott.dept to zhangsan with grant option;

8.创建角色myrole,采用数据库认证方式,口令‘abc’。

Create role myrole identified by abc;

9.为角色myrole授予创建会话的权限

Grant create session to myrole;

10.为用户zhangsan分配myrole角色、resource角色以及更新Scott模式Dept表的权限。Grant myrole,resource to zhangsan;

Grant upate on scott.dept to zhangsan;

11.回收用户zhangsan的查询Scott模式Dept表的权限。

Revoke select on scott.dept from zhangsan

12.采用热备份和恢复方式,对表空间users的数据文件user01.dbf进行备份和恢复,请写出实现步骤及其中的实现语句。

<1>archive log list;(归档模式)

Alter tablespace users begin backup;

拷贝

Alter tablespace users end backup;

Alter system switch logfile;

Alter system switch logfile;

<2>启动到mount状态

复制user01.dbf到数据库目录

recover database;

Alter database open;