47.Which two database operations can be performed at the mount stage of database startup?
题目解析:
A和E在mount状态,
B在open状态,
C和D在nomount状态
知识扩展
nomount阶段完成的任务:
a.简单的说下参数文件,数据库启动过程中会去选择对应的参数文件读取配置初始化数据库相关参数,参数文件的选择也是有顺序的,顺序是: spfile<SID>.ora ---> spfile.ora ---> init<SID>.ora
b.分配SGA
c.启动后台进程
d.打开并修改告警<SID>.log文件及跟踪文件
使用场景:多用于数据库创建、控制文件重建、特定的备份恢复等
注意:此阶段不打开任何的控制文件及数据文件。
mount阶段完成的任务:
a.启动实例并打开控制文件,将数据库与实例关联起来
b.利用参数文件中的说明,打开并锁定控制文件
c.读取控制文件以获取数据文件和重做日志文件的名字和状态信息,但不检查数据日志文件是否存在
使用场景:
a.重命名数据文件,移动数据文件位置等(数据库打开,表空间脱机的情况下也可以重命名数据文件)
b.启用或关闭重做日志文件的归档及非归档模式
c.实现数据库的完全恢复
注意:这一步会读控制文件,如果这一步有一个控制文件损坏就无法启动
open阶段完成的任务:
a.打开数据文件
b.打开联机日志文件
注意:
a.在此期间,Oracle服务器将校验所偶的数据文件和联机日志文件能否打开并对数据库作一致性检查
b.如果出现一致性错误,SMON进程将启动实例恢复
c.如果任一数据文件或联机日志文件丢失,Oracle服务器将报错
数据库在open阶段,会根据控制文件中记录的数据文件位置找到数据文件,对这些文件进行一致性检查,如果没有问题则open数据库,如果有问题则需要进行 恢复 操作,有些恢复数据库直接通过日志就能完成恢复,有些大问题数据库自己恢复不了,就需要人工参与诊断了,比如很多600错误。
一致性校验主要包括两个部分:
1,检查数据文件头中的Checkpoint CNT和控制文件中的Checkpoint CNT是否一致,如果相等,则进行第2步检查
2,检查数据文件头中的开始SCN和控制文件中的结束SCN是否一致