Oracle启动过程详情介绍
nomount
mount
open
使用sys用户登录
startup nonount;
alter database mount;
alter database open;
1.startup nomount
此时数据库未装载,这个时候数据库做如下操作:
读取参数文件,默认路径$ORACLE_HOME/dbs/spfile<sid>.ora
如果找不到默认的参数文件则在默认路径下面按层级寻找文件,直到找到,则停止下一级的寻找。
spfile<sid>.ora - spfile.ora - init<sid>.ora - init.ora;
如果都没找到,报错。找不到参数文件解决方案,待定,更新后会家链接。
根据参数文件的参数分配sga;
启动后台进程;
打开预警日志alert_<sid>.log文件和跟踪文件;
2.alter database mount;
此时数据库完成装载
将启动的实例与数据库相关联;实例既内存结构,数据库既数据文件。
从参数文件中找到控制文件位置并打开;
如果在指定的路径找不到控制文件,会报错,解决方案待定,更新后会加链接。
从控制文件中读取数据文件及重做日志文件名称与状态,此时并不检查数据文件与重做日志文件是否存在,只是读取。
3.alter database open;
此时数据库会被打开
打开数据文件;
打开重做日志文件,如果已经开启归档模式;
在最后阶段,Oracle数据库验证数据文件和重做日志文件可否打开并检验数据库的一致性,若不一致,SMON后台进程将启动实例恢复。
数据库启动验证(比对是否一致,是否需要恢复)
(1) 启动时检查数据文件头中的checkpoint cnt是否与对应控制文件中的checkpoint cnt是否一致,如果一致,再进行下一步。
(2)检查数据文件头的开始scn和控制文件中的结束scn是否一致,如果结束scn等于开始scn,则不需要要对那个文件进行恢复。
检查点计数checkpoint cnt
控制文件开始的 scn
数据文件stop scn