Oracle 启动过程分为
nomount状态
mount状态
open状态
每个状态下Oracle都会进行不同的操作:
1、nomount状态
在$ORACLE_HOME/dbs目录下寻找参数文件
参数文件选择顺序为spfile<ORACLE_SID>.ora --> spfile.ora -->init<ORACLE_SID>.ora
Oracle按照参数文件的配置,生成instance、打开日志文件、分配Oracle内存、启动Oracle实例相关进程-- pmon/smon/DBWR/LGWR/CKPT/VKTM
2、mount状态
根据参数文件的描述,找到控制文件。并和参数文件对照‘DB_name’不通过则无法启动至mount状态,
根据控制文件描述,检查数据文件是否存在。9i之后数据文件不存在,Oracle不在告警而是记录在告警日志当中。
打开online redo log 文件
验证口令文件,10G之前口令文件验证失败。Oracle无法启动至mount状态,10G之后口令文件验证失败,Oracle仍可进入mount状态,但是有关口令文件的部分功能无法使用。如将SYSDBA权限授予用户和远程登录Oracle数据库都无法成功
通过$ORACLE_HOME/dbs目录下的lk<ORACLE_SID>.ora文件锁定数据库
3、open状态
通过控制文件校验数据文件状态,主要进行以下两种校验:
1)校验数据文件头块中的检查计数点和控制文件中记录的是否一致。
2)校验数据文件中记录的最后SCN号和控制文件中是否一致。