oracle启动那些事

来源:互联网 发布:淘宝会员制度 编辑:程序博客网 时间:2024/04/27 19:39

身为一个oracle新手,总结下最近学的东西

 

0.oracle的很多信息都保存在了警报日志文件中(alert_<sid>.log)。

在数据库出现问题的时候,提示中给出的可能不是完整的信息,而警报日志中则记录了完整的错误过程和错误号。

 

oracle启动主要包含三个步骤:

1.启动到nomount状态

2.启动到mount状态

3.启动到open状态

 

 

 

1.1首先,oracle首先寻找参数文件(spfile),根据参数文件中的设置,创建实例,分配内存,启动进程。

 

oracle首选spfile<sid>.ora文件作为启动参数文件,如果该文件不存在,oracle选择的参数文件依次为spfile.ora init<sid>.ora

如果这三个文件都不存在,oracle无法启动。

 

1.2参数文件中至少要写参数db_name。

 

1.3在使用rman的时候,oracle允许在不存在参数文件的情况下启动一个实例,db_name会被命名为dummy。

但是,必须在rman的环境中再运行startup nomount命令.

 

1.4 在nomount时,可以查询v$parameter试图,获取控制文件信息,这些信息来自参数文件。

 

2.1在mount数据库过程中,oracle需要找到控制文件并锁定控制文件。

控制文件有三个,是同一个文件的三个拷贝,寻找这些控制文件的信息通过spfile获取。

 

2.2在mount的过程中,数据库也需要口令文件orapw<sid>,如果不存在,oracle据需寻找orapw文件。

口令文件如果丢失,可以通过orapw工具重建口令文件。

 

3.1在open阶段,oracle根据控制文件中记录的数据库文件、日志文件的位置、检查点等信息启动。

 

3.2在open过程中,oracle需要检查两个地方:

3.2.1 检查数据文件头中的检查点计数(checkpoint cnt)是否和控制文件中的检查点计数一致。

3.2.2 检查数据文件头的开始scn和控制文件中记录的该文件的scn是否一致。

如果有任意一种不一致,就需要对数据库进行修复(可能是数据库恢复过来的文件)

 

警报日志中同样记录了整个启动过程。

原创粉丝点击