启动数据库到open阶段
由于控制文件记录数据库中的数据文件、日志文件的位置等信息,检查点信息等重要信息。在数据库的open阶段,Oracle将根据控制文件中记录的这些信息找到这些文件,然后进行检查点及完整性检查.如果不存在问题就可以启动数据库,如果存在不一致或者丢失则需要进行恢复。
1.open阶段的一致性校验
在数据库open的过程中,Oracle进行的检查中包含以下两项:
第一次检查数据文件头中的检查点计数(checkpoint CNT)是否和控制文件中的检查点计数(Checkpoint CNT)一致。此步骤检查用以确认数据文件是来自同一版本,而不是从备库中恢复而来(因为Checkpoint CNT不会被冻结,会一直被修改)
第二次检查数据文件的开始SCN和控制文件中记录的该文件的结束SCN是否一致,如果控制文件中记录的结束scn等于数据文件的开始SCN,则不需要对那个文件进行恢复了。
对于每一个数据文件都完成检查后,如果数据库中的某个文件丢失,同时将每个数据文件的结束SCN设置为无穷大
在mount阶段,如果数据库的某个文件丢失,在mount数据时oralce会在后台将文件信息记录在告警日志中,但是并不会在前台给出提示;而在open阶段,如果数据库无法锁定该文件,则在前台发出错误的警告,数据库将停止启动。