第五章(2)说明Oracle数据库物理存储结构的组成及其关系Oracle数据库物理结构包括数据文件、控制文件、重做日志文件、初始化参数文件、归档文件、口令文件等。在控制文件中记录了当前数据库所有的数据文件的名称与位置、重做日志文件的名称与位置,以及数据文件、重做日志文件的状态等。(6)说明Oracle数据库归档的必要性以及如何进行归档设置归档是数据库恢复及热备份的基础。只用当数据库归档模式时,才可以进行热备份和完全恢复。进行归档设置包括归档模式设置(ARCHIVELOG)、归档方式设置以及归档路径的设置等。(9)说明采用多路复用控制文件的必要性及其工作方式采用多路复用控制文件可以避免由于一个控制文件的损坏而导致数据库无法正常启动。在数据库启动时根据一个控制文件打开数据库,在数据库运行时多路复用控制文件采用镜像的方式进行写操作,保持所有控制文件的同步。第六章(3)说明数据库、表空间、数据文件以及数据库对象之间的关系。一个数据库由一个或多个表空间构成,不同的表空间用于存放不同应用的数据,表空间的大小决定了数据库的大小。一个表空间对应一个或多个数据文件,数据文件的大小决定了表空间的大小。一个数据文件只能从属于一个表空间。一个数据库对象只能存储在一个表空间中,但可以存储在该表空间所对应的一个或多个数据文件中。(4)数据库表空间的管理方式有几种,各有什么特点?数据库表空间的管理方式有两种:字典管理方式和本地管理方式。在字典管理方式下,表空间使用数据字典来管理存储空间的分配,当进行区的分配与回收时,Oracle将对数据字典中的相关基础表进行更新,同时会产生回退信息和重做信息。在本地管理方式中,区的分配和管理信息都存储在表空间的数据文件中,而与数据字典无关。(9)说明数据库存储空间碎片产生的原因及如何回收碎片当表空间中生成一个段时,将从表空间有效自由空间中为这个段的初始范围分配空间。在这些初始范围充满数据时,段会请求增加另一个范围。这样的扩展过程会一直继续下去,直到达到最大的范围值,或者在表空间中已经没有自由空间用于下一个范围。当要满足一个空间要求时,数据库不再合并相邻的自由范围,而是寻找表空间中最大的自由范围来使用。这样将逐渐形成越来越多的离散的、分隔的、较小的自由空间,即碎片。碎片整理可以分为:自由范围的碎片整理和段的碎片整理。如果段的碎片过多,将其数据压缩到一个范围的最简单方法便是用正确的存储参数将这个段重建,然后将旧表中的数据插入到新表,同时删除旧表。第七章(2)说明数据库内存结构中SGA和PGA的组成,以及这两个内存区存放信息的区别SGA区由数据缓冲区、共享池、重做日志缓冲区、大型池、JAVA池构成;PGA区由排序区、私有SQL区以及堆栈构成。SGA区是由Oracle分配的共享内存结构,包含一个数据库实例共享的数据和控制信息。当多个用户同时连接同一个实例时,SGA区数据供多个用户共享,所以SGA区又称为共享全局区。用户对数据库的各种操作主要在SGA区中进行。该内存区随数据库实例的创建而分配,随实例的终止而释放。PGA区是在用户进程连接数据库,创建一个会话时,由Oracle为用户分配的内存区域,保存当前用户私有的数据和控制信息,因此该区又称为私有全局区。每个服务器进程只能访问自己的PGA区,所有服务器进程PGA区总和即为实例的PGA区的大小。(5)Oracle数据库后台进程有哪些?其功能是什么?Oracle实例的主要后台进程包括数据库写进程(DBWR)、日志写进程(LGWR)、检查点进程(CKPT)、系统监控进程(SMON)、进程监控进程(PMON)、归档进程(ARCH)、恢复进程(RECO)、锁进程(LCKn)、调度进程(Dnnn)等。DBWR进程负责把数据高速缓冲区中已经被修改过的数据(“脏”缓存块)成批写入数据文件中永久保存,同时使数据高速缓冲区有更多的空闲缓存块,保证服务器进程将所需要的数据从数据文件读取到数据高速缓冲区中,提高缓存命中率。LGWR日志写入进程负责把重做日志缓冲区的重做记录写入重做日志文件中永久保存。CKPT进程的作用就是执行检查点,更新控制文件与数据文件的头部,使其同步;,触发DBWR进程,将脏缓存块写入数据文件。SMON进程的主要功能包括:在实例启动时负责对数据库进行恢复;回收不再使用的临时空间;将各个表空间的空闲碎片合并。PMON进程的主要功能包括:负责恢复失败的用户进程或服务器进程,并且释放进程所占用的资源;清除非正常中断的用户进程留下的孤儿会话,回退未提交的事务,释放会话所占用的锁、SGA、PGA等资源;监控调度进程和服务器进程的状态,如果它们失败,则尝试重新启动它们,并释放它们所占用的各种资源。ARCH进程用户归档重做日志文件。RECO进程用户数据库恢复。(7)LGWR进程是如何工作的日志写入进程负责把重做日志缓冲区的重做记录写入重做日志文件中永久保存。当下列事件发生时,LGWR进程将重做日志缓冲区中的重做记录写入重做日志文件。1.用户通过COMMIT语句提交当前事务。2.重做日志缓冲区被写满三分之一。3.DBWR进程开始将脏缓存块写入数据文件。4.LGWR进程超时(大约3秒),LGWR进程将启动。(8)分别说明SMON进程与PMON进程的功能是什么SMON进程的主要功能包括:在实例启动时负责对数据库进行恢复;回收不再使用的临时空间;将各个表空间的空闲碎片合并。PMON进程的主要功能包括:负责恢复失败的用户进程或服务器进程,并且释放进程所占用的资源;清除非正常中断的用户进程留下的孤儿会话,回退未提交的事务,释放会话所占用的锁、SGA、PGA等资源;监控调度进程和服务器进程的状态,如果它们失败,则尝试重新启动它们,并释放它们所占用的各种资源。第九章(3)说明索引的作用,以及Oracle数据库中索引的类型。索引用于提高数据的查询效率。根据索引值是否唯一,可以分为唯一性索引和非唯一性索引;根据索引的组织结构不同,可以分为平衡树索引和位图索引;根据索引基于的列数不同可以分为单列索引和复合索引。(4)简述Oracle数据库中分区的概念,对表和索引进行分区管理有何优点?所谓分区是指将一个巨型表或巨型索引分成若干个独立的组成部分进行存储和管理,每一个小的、可以独立管理的部分,称为原来表或索引的分区。对巨型表进行分区后,即可以对整个表进行操作,也可以针对特定的分区进行操作,从而简化了对表的管理和维护。(6)对表进行分区的方法有哪些?如何实现?对表进行分区的方法包括:范围分区:按照分区值的范围对表进行分区。列表分区:按照分区值对表进行分区。散列分区:采用HASH算法在指定数量的分区中均等地分配数据。复合分区:先对表进行范围分区,然后对每个分区进行散列分区。(7)说明视图、序列、同义词和数据库链接的概念及作用。视图是从一个或多个表或视图中提取出来的数据的一种表现形式。在数据库中只有视图的定义,而没有实际对应“表”的存在。通过视图的使用可以提高数据的安全性,隐藏数据的复杂性,简化查询语句,分离应用程序与基础表,保存复杂查询等。序列是用于产生唯一序列号的数据库对象,可以为多个数据库用户依次生成不重复的连续整数,通常使用序列自动生成表中的主键值。同义词是数据库中表、索引、视图或其他模式对象的一个别名。利用同义词,一方面可以为数据库对象提供一定的安全性保障;另一方面可以简化对象访问。此外,当数据库对象改变时,只需要修改同义词而不需要修改应用程序。数据库链接是在分布式数据库应用环境中的一个数据库与另一个数据库之间的通信途径,将远程数据库映射到本地。所有能够访问本地数据库链接的应用程序均可访问远程数据库中的模式对象第十章(2)Oracle数据库用户的认证方式有哪几种?Oracle提供了3种用户认证机制,即数据库身份认证、外部身份认证和全局身份认证。只有通过认证的用户才能访问数据库。(5)简述Oracle数据库角色的种类、作用,以及如何利用角色为用户授权。Oracle数据库中角色分为系统预定义的角色和用户自定义的角色两类。角色是一系列权限的集合,可以先将权限授予角色,然后将角色授予具有相同权限的用户。(6)Oracle数据库系统权限的授予与回收和对象权限的授予与回收的区别是什么?系统权限授予与回收时不需要指定权限的所有者,因为系统权限是数据库级别的权限;而对象权限的授予与回收需要指定权限所依附的数据库对象。(7)简述Oracle数据库概要文件的作用。Oracle数据库概要文件主要用来限制用户的数据库及系统资源的使用以及管理用户口令策。第十一章(7)物理备份和逻辑备份的主要区别是什么?分别适用于什么情况?物理备份就是在操作系统层面上复制物理文件,逻辑备份是在数据库中用EXPORT导出二进制文件。而逻辑备份是指利用Oracle提供的导出工具将数据库中的数据抽取出来存放到一个二进制文件中。物理备份主要为了防止操作系统级的数据库组件丢失,逻辑备份主要用于在实例之间移动指定的数据或在不同的系统结构、操作系统版本或Oracle版本之间移动数据。(8)归档模式下的备份和非归档模式下的备份有何不同?分别在什么情况下使用?非归档模式,联机日志在切换时就会丢弃.而在归档模式下,当发生日志切换的时候,被切换的日志会进行归档。在归档模式下,可以做热备份,并且可以做增量备份,可以做部分恢复;数据库使用归档方式运行时才可以进行灾难性恢复。在非归档模式下,只能做冷备份,并且恢复时只能做完全备份.最近一次完全备份到系统出错期间的数据不能恢复第十四章(4)简述游标的作用和游标操作的基本步骤游标的作用是将数据库的中数据检索出来后缓存,可以被PL/SQL程序一行一行的读取并处理。支持一条、多条、零条记录的处理。游标的基本操作步骤为声明游标、打开游标、检索游标、关闭游标。(7)说明PL/SQL异常的传播方式1.如果当期语句块有该异常的处理器,则程序流程转移到该异常处理器,并进行错误处理,成功完成该语句块。然后,程序的控制流程传递到外层语句块,继续执行。2.如果当前语句块没有该异常的处理机器,则通过在外层语句块的执行部分产生该异常来传播该异常。然后,对外层语句执行步骤1。如果没有外层语句块,则该异常将传播到调用环境。第十五章(3)如果在一个表上创建了语句级前触发器、语句级后触发器、行级前触发器、行级后触发器,说明四种触发器和触发器事件的执行顺序。DML触发器执行顺序为:1.如果存在,执行语句级前触发器。2.对于受触发事件影响的每一个记录:·如果存在,执行行级前触发器;·执行当前记录的DML操作(触发事件);·如果存在,执行行级后触发器。3.如果存在,执行语句级后触发器。(4)说明DML触发器中行级触发器和语句级触发器的区别以及何时创建DML触发器中的语句级触发器是激发触发器的SQL语句不管涉及到多少记录,触发器只执行一次,而行级触发器是激发触发器的SQL语句涉及到多少记录,触发器就执行多少次。通常,如果要获取当前操作记录的信息,需要采用行级触发器,而如果需要获取整个操作之前或操作之后的信息,可以采用语句级触发器第三章创建数据库(1)后台进程跟踪文件的位置是A.LOGFILE_DESTB.ORACLE_HOMEC.BACKGROUND_DUMP_DESTD.CORE_DUMP_DEST(2)手动创建数据库的第一步是A.启动实例B.启动SQL*Plus以SYSDBA身份连接OracleC.查看系统的实例名D.创建参数文件(3)关于控制文件以下正确的是A.Oracle建议至少二个控制文件存放在二个磁盘分区B.Oracle建议至少二个控制文件存放在一个磁盘分区C.Oracle建议存放一个控制文件D.一个控制文件不足以运行数据库(4)执行CREATEDATABASE命令之前,应该发出的命令是A.STARTUPINSTANCEB.STARTUPNOMOUNTC.STARTUPMOUNTD.以上都不是(5)创建数据库时,Oracle如何得知需要创建的控制文件信息?A.从初始化参数文件B.从CREATEDATABASE命令C.从环境变量D.从$ORACLE_HOME目录