1 启动到NOMOUNT状态
n 查找参数文件,查找步骤spfile.ora—spfile.ora—init.ora
查看是否使用了SPFILE
Show parameter spfile;
n 根据参数文件中的设置,创建实例,分配内存,启动后台进程
2 启动到MOUNT状态
n 从参数文件中获得控制文件的位置,找到并锁定控制文件
Show parameter control_files;---nomount
Select * from v$controlfile;--mount
n 通过口令文件登录系统
文件格式:UNIX-orapw.ora
WIN—pwd.ora
命令:orapwd file= password= entries=users
3 启动到OPEN状态
n 根据控制文件记录的信息,进行检查点及完整性检查,如果不存在问题,就可以启动数据库;
n 第一次检查数据文件头中的检查点计数(Checkpoint cnt)是否和控制文件中的检查点计数(Checkpoint cnt)一致。
此步骤检查用以确认数据文件是否来自同一版本,而不是从备份中恢复而来。(因为Checkpoint cnt不会被冻结,会一直被修改)
n 第二次检查数据文件头的开始SCN和控制文件中记录的该文件的结束SCN是否一致,如果一致,就不需要进行恢复。
n 完成数据文件的检查后,打开数据库,锁定数据文件,同时将每个数据文件的结束SCN设置为无穷大。
n 完成数据库的验证和恢复过程后,数据库处于一致状态,数据库还需要进行一系列处理过程:将UNDO段在线等操作,然后数据库可以提供访问,同时SMON可以开始进行事务回滚等。
n 在每次数据库的启动中,还需要判断控制文件的字符集和数据库的字符集是否相符,如果不相符,则以数据库中的字符集为准更新控制文件的字符集。
4 BOOTSTRAP$
ORACLE在mount到open的过程中,首先在内存中创建bootstrap$,然后从数据文件中装载了bootstrap$的内容,递归从该表中读取信息,创建数据库系统基本对象,从而打开数据库。
5 参考SQL
n 获取SCN
select dbms_flashback.get_system_change_number from dual;
n DUMP控制文件
ALTER SESSION SET EVENTS 'immediate trace name controlf level 10';
n 获取CHENKPOINT SCN
Select file#,checkpoint_change#,to_char(checkpoint_time,’yyyy-mm-dd hh24:mi:ss’) CPT from v$datafile;
Select dbid,checkpoint_change# from v$database;
n Tkprof格式化跟踪文件输出
tkprof mestest_ora_212.trc 212.txt explain=system/oracle aggregate=yes sys=yes waits=yes sort=fchela
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69204/viewspace-45360/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/69204/viewspace-45360/