?
?
? ?
? ?
?
?
? ?
调度程序定期检查“响应队列”,如果发现有自己送出请求的处理结果,则将结果取出。调度程序根据处理结果中保存的调度程序ID来标识该结果是否是自己的。
调度程序将处理结果返回给用户进程。 2.选择题
(1)D(2)D(3)B(4)B(5)D(6)A(7)D(8)B(9)B(10)A
第9章 数据库的启动与关闭
1.简答题 (1)
常用的数据库启动与关闭工具包括:SQL*PLUS、OEM、RMAN等。 (2)
数据库启动时首先根据初始化参数文件创建并启动实例,然后根据控制文件加载数据文件和充作日志文件,最后打开数据文件和重做日志文件。 (3)
数据库关闭时首先关闭数据文件和重做日志文件,然后卸载数据文件和重做日志文件,关闭控制文件,最后释放内存结构和后台进程,即关闭实例。 (4)
利用初始化参数文件中参数设置创建并启动实例;
利用控制文件中的信息定位并加载数据文件和重做日志文件。
重做日志文件用户在数据库运行过程中记录用户对数据库的修改操作。 (5)
数据库启动模式包括:
STARTUP NOMOUNT
用于创建一个新的数据库或重建数据库的控制文件。
STARTUP MOUNT
用于重命名数据文件、添加、删除或重命名重做日志文件、改变数据库的归档模式、执行数据库完全恢复操作等。
STARTUP NORMAL
正常启动数据库
STARTUP FORCE
在下列情况下,需要使用STARTUP FORCE命令启动数据库:无法使用SHUTDOWN NORMAL,SHUTDOWN IMMEDIATE或SHUTDOWN TRANSACTION语句关闭数据库实例;在启动实例时出现无法恢复的错误。
STARTUP RESTRICT
当执行下列操作时,需要使用STARTUP RESTRICT命令启动数据库:执行数据库数据的导出或导入操作;执行数据装载操作;暂时阻止普通用户连接数据库;进行数据库移植或升级操作等。 (6)
关闭数据库的方法包括:
SHUTDOWN [ NORMAL ]
如果对数据库的关闭没有时间限制,则可以采用该命令正常关闭数据库。 当采用SHUTDOWN NORAML方式关闭数据库时,Oracle将执行下列操作:
阻止任何用户建立新的连接;
等待当前所有正在连接的用户主动断开连接;
? ? ?
? ? ? ? ?
? ? ? ? ?
? ? ? ? ?
一旦所有用户断开连接,则关闭数据库;
数据库下次启动时不需要任何实例的恢复过程。 SHUTDOWN IMMEDIATE
如果要求在尽可能短时间内关闭数据库,如即将启动数据库备份操作、即将发生电力供应中断、数据库本身或某个数据库应用程序发生异常需要关闭数据库等,都可以采用SHUTDOWN IMMEDIATE命令来立即关闭数据库。
当采用SHUTDOWN IMMEDIATE方式关闭数据库时,Oracle将执行下列操作:
阻止任何用户建立新的连接,也不允许当前连接用户启动任何新的事务; 回滚所有当前未提交的事务;
终止所有用户的连接,直接关闭数据库;
数据库下一次启动时不需要任何实例的恢复过程。 SHUTDOWN TRANSACTION
如果要求在尽量短的时间内关闭数据库,同时还要保证所有当前活动事务可以提交,则可以采用SHUTDOWN TRANSACTION命令关闭数据。
当采用SHUTDOWN TRANSACTION方式关闭数据库时,Oracle将执行下列操作:
阻止所有用户建立新的连接,也不允许当前连接用户启动任何新的事
务;
等待用户回滚或提交任何当前未提交的事务,然后立即断开用户连接; 关闭数据库;
数据库下一次启动时不需要任何实例的恢复过程。 SHUTDOWN ABORT
如果前三种方法都无法成功关闭数据库,说明数据库产生了严重错误,只能采用终止方式,即SHUTDOWN ABORT命令来关闭数据库,此时会丢失一部分数据信息,对数据库完整性造成损害。
当采用SHUTDOWN ABORT方式关闭数据库时,Oracle将执行下列操作:
阻止任何用户建立新的连接,同时阻止当前连接用户开始任何新的事
务。
立即结束当前正在执行的SQL语句。 任何未提交的事务不被回滚。
中断所有的用户连接,立即关闭数据库。 数据库实例重启后需要恢复。
(7)
STARTUP NOMOUNT可用完成的管理操作包括: 用于创建一个新的数据库、重建数据库的控制文件等。 STARTUP MOUNT可以完成的管理操作包括:
用于重命名数据文件、添加、删除或重命名重做日志文件、改变数据库的归档模式、执行数据库完全恢复操作等。 (8)
如果需要数据库处于OPNE模式下执行维护任务,而同时要保证其他用户不能在数据库中建立连接和执行操作,此时应该使用STARTUP RESTRICT命令启动数据库。
当执行下列操作时,需要使用STARTUP RESTRICT命令启动数据库。
? ? ? ? 执行数据库数据的导出或导入操作 执行数据装载操作
暂时阻止普通用户连接数据库 进行数据库移植或升级操作
(9)
所谓的静默状态是指只允许DBA用户在数据库中进行操作,而其他所有用户都不能进行数据库的访问。DBA在进行数据库的管理与维护,执行某些特殊操作时,需要排除其他用户对数据库的操作。例如,DBA在执行某些操作的程中,如果有其他用户访问操作的对象,将导致管理操作失败;DBA的某些操作在执行过程中所产生的中间结果不应当被其他用户看到。
当数据库处于挂起状态时,数据库所有的物理文件的I/O操作都被暂停。但是与静默状态不同,挂起状态不禁止非DBA用户进行数据库操作,只是暂时停止所有用户的I/O操作 (10)
数据库启动时首先从默认位置读取服务器端初始化参数文件,如果没有,则读取默认位置的文本初始化参数文件;如果还没有则可以通过PFILE参数指定文本初始化参数文件文件。
第10章 复习题
1.简答题 (1)
数据库模式与用户之间的区别在于:用户是数据库的使用者和管理者,用户具有帐户状态、访问权限和操作权限等属性。模式是一系列逻辑数据结构或对象的集合,是数据库中对象的组织和管理单位。 (2)
在Oracle 数据库中,根据表生存周期不同,可以分为永久性表和临时表;根据表中数据组织方式不同,可以分为标准表、索引化表和分区表。索引化表是一种特殊的表,它按B树的结构来组织和存储数据,将表的数据和索引的数据存储在一起。分区表是将一个表分成若干个独立的组成部分进行存储和管理。 (3)
表的约束包括:
主键约束:定义了主键约束的列取值不能为空,也不能重复。 唯一值约束:定义了唯一值约束的列取值不能重复。 检查约束:定义了检查约束的列取值要满足检查条件。
外键约束:定义了外键约束的列取值要么是主表参照列的值,要么是空
值。
空/非空约束:定义了非空约束的列取值不能为空。
(4)
索引用于提高数据的查询效率。根据索引值是否唯一,可以分为唯一性索引和非唯一性索引;根据索引的组织结构不同,可以分为平衡树索引和位图索引;根据索引基于的列数不同可以分为单列索引和复合索引。 (5)
索引化表将按索引的结构组织表中的数据,整条记录都被保存在索引条目中。要启用溢出存储功能,必须在创建索引化表时使用OVERFLOW子句指定溢出部分的存储空间,同时使用PCTTHRESHOLD子句或INCLUDING子句来设
? ? ? ? ?
置溢出方式。 (6)
所谓分区是指将一个巨型表或巨型索引分成若干个独立的组成部分进行存储和管理,每一个小的、可以独立管理的部分,称为原来表或索引的分区。对巨型表进行分区后,即可以对整个表进行操作,也可以针对特定的分区进行操作,从而简化了对表的管理和维护。 (7)
对表进行分区的方法包括:
? 范围分区:按照分区值的范围对表进行分区。 ? 列表分区:按照分区值对表进行分区。 ? 散列分区:采用HASH算法在指定数量的分区中均等地分配数据。 ? 复合分区:先对表进行范围分区,然后对每个分区进行散列分区。
(8) ? 簇是一种存储表数据的方法,一个簇由共享相同数据块的一组表组成。
在一个簇中,Oracle将多个表中具有相同相关列的记录聚簇在相同的数据块中。对于经常访问这些列的应用来说,能够减少磁盘I/O时间,改善连接查询的效率。 ? 视图是从一个或多个表或视图中提取出来的数据的一种表现形式。在数
据库中只有视图的定义,而没有实际对应“表”的存在。通过视图的使用可以提高数据的安全性,隐藏数据的复杂性,简化查询语句,分离应用程序与基础表,保存复杂查询等。 ? 序列是用于产生唯一序列号的数据库对象,可以为多个数据库用户依次
生成不重复的连续整数,通常使用序列自动生成表中的主键值。 ? 同义词是数据库中表、索引、视图或其他模式对象的一个别名。利用同
义词,一方面可以为数据库对象提供一定的安全性保障;另一方面可以简化对象访问。此外,当数据库对象改变时,只需要修改同义词而不需要修改应用程序。 ? 数据库链接是在分布式数据库应用环境中的一个数据库与另一个数据库
之间的通信途径,将远程数据库映射到本地。所有能够访问本地数据库链接的应用程序均可访问远程数据库中的模式对象。 (9)
在数据库中使用索引可以提高对表中数据的查询速度,但是,向表中插入数据需要更新索引,会影响更新速度。如果表建了索引,在有条件查询时,系统先对索引表进行查询,利用索引表可以找到相应记录的ROWID。索引建好后,由系统负责更新。 (10)
数据库中临时表分为事务级别的临时表和会话级别的临时表。创建表有三种方法:
定义表名、列名、类型与约束等直接创建表;利用子查询间接创建表。
第11章 安全管理
1.简答题 (1)
Oracle数据库的安全机制包括:用户管理、权限管理、角色管理、表空间设置和配额管理、用户资源限制以及数据库审计等。 (2)
Oracle提供了3种用户认证机制,即数据库身份认证、外部身份认证和全局
?
? ? ? ? ? ? ?
?
身份认证。只有通过认证的用户才能访问数据库。 (3)
Oracle数据库中权限有两类,系统权限和对象权限。系统权限是指在数据库级别执行某种操作的权限,或针对某一类对象执行某种操作的权限。对象权限是指对某个特定的数据库对象执行某种操作的权限。例如,对特定表的插入、删除、修改、查询的权限。 (4)
在Oracle数据库中,将权限授予用户有2种方法:直接授权,利用GRANT命令直接为用户授权;间接授权,先将权限授予角色,然后再将角色授予用户。 (5)
Oracle数据库中角色分为系统预定义的角色和用户自定义的角色两类。角色是一系列权限的集合,可以先将权限授予角色,然后将角色授予具有相同权限的用户。 (6)
系统权限授予与回收时不需要指定权限的所有者,因为系统权限是数据库级别的权限;而对象权限的授予与回收需要指定权限所依附的数据库对象。 (7)
Oracle数据库概要文件主要用来限制用户的数据库及系统资源的使用以及管理用户口令策略。 (8)
常用的系统权限包括:CREATE TABLE、CREATE VIEW、CREATE SESSION、CREATE ANY TABLE、CREATE USER等;常用的对象权限包括:SELECT、UPDATE、DELETE、INSERT、ALTER等;常用角色包括:CONNECT、DBA、RESOURCE、EXP_FULL_DATABASE、IMP_FULL_DATABASE (9)数据库概要文件资源控制参数包括:
CPU_PER_SESSION :限制用户在一次会话期间可以占用的CPU
时间总量,单位为百分之一秒。当达到该时间限制后,用户就不能在会话中执行任何操作了,必须断开连接,然后重新建立连接。
CPU_PER_CALL:限制每个调用可以占用的CPU 时间总量,单位为百分之
一秒。当一个SQL语句执行时间达到该限制后,该语句以错误信息结束。
CONNECT_TIME:限制每个会话可持续最大时间值,单位为分钟。当数据
库连接持续时间超出该设置时,连接被断开。
IDLE_TIME:限制每个会话处于连续空闲状态最大时间值,单位为分钟。当会
话空闲时间超过该设置时,连接将被断开。
SESSIONS_PER_USER:限制一个用户打开数据库会话的最大数量。 LOGICAL_READS_PER_SESSION:允许一个会话读取数据块的最大数量,
包括从内存中读取的数据块和从磁盘中读取的数据块的总和。
LOGICAL_READS_PER_CALL :允许一个调用读取的数据块的最大数量,包
括从内存中读取的数据块和从磁盘中读取的数据块的总和。
PRIVATE_SGA:在共享服务器操作模式中,执行SQL语句或PL/SQL
程序时,Oracle将在SGA中创建私有SQL区。该参数限制在SGA中一个会话可分配私有SQL区的最大值。
COMPOSITE_LIMIT :称为“综合资源限制”,是一个用户会话可以消耗
的资源总限额。该参数由CPU_PER_SESSION、