数据库启动分为三个阶段:
1,nomount
在此阶段,数据库会首先读取spfileSID文件,作为启动参数文件;
如果无此文件,再寻找spfile文件。最后寻找initSID.ora 文件。
如果三个文件都无,则将不能启动。
$ORACLE_HOME/dbs/initSID.ora
2,mount
在此阶段,数据库会根据参数文件中的读取控制文件,并锁定控制文件。
一般默认提供三个控制文件。
如果丢失一,二个,只需要复制一份,修改名称即可。
全部丢失,就需要恢复或重建来打开数据库。
在生产环境中,此三个控制文件分开存放。
3,open
在此阶段, 数据库会根据控制文件,检查数据文件,日志文件的位置信息,检查点信息等进行检查点及完整性检查。
如果存在不一致,或文件丢失则要进行恢复。
检查主要有二步: 第一步 检查数据文件头部检查点计数是否与控制文件中的检查点计数一致。
第二步,检查数据文件头部的SCN 与控制文件结束的SCN是否一致。
如果通过,则锁定数据文件,同时将每个数据文件的结束SCN设成无穷大。
http://wrong1111.iteye.com/admin/blogs/2108992