Oracle 数据库实例的启动过程详解


数据库实例处于关闭状态
startup nomount 数据库实例启动进入第一阶段

(步骤:
1.查找参数文件 spfile<SID>.ora,若找不到则查找spfile.ora,若仍找不到则查找init<SID>.ora
2.分配SGA
3.启动后台进程
4.打开告警日志文件alert_<SID>.log和追踪日志文件)

(在此阶段,可以进行 创建数据库、创建控制文件、部分备份和恢复)

mount 数据库实例启动进入第二阶段

(步骤:
1.把一个数据库和第一阶段启动的实例关联起来
2.找到并打开在第一阶段找到的参数文件中指定的控制文件
3.读取控制文件并获得其中指定的数据文件和在线日志文件的名字及其状态,但是并不在此时检查它们是否存在)

(在此阶段,进行一些指定的维护操作,例如 1.重命名数据文件(除此之外,在离线表空间中的数据文件即使在数据库打开的状态也可以重命名)
2.归档模式的打开与关闭
3.执行全库备份)

(注意:在mount状态下,alter database open后,数据库仍然可能处于mount状态,原因可能是数据库需要在某些情况下进行恢复)

open 数据库实例启动进入第三阶段:打开控制文件中指定的所有的数据文件和日志文件

(步骤:1.打开控制文件中指定的数据文件
2.打开控制文件中指定的日志文件)

(注意:在此阶段,数据库服务核实所有的数据文件和日志文件能否打开,并且检查数据库的一致性。当打开数据库的时候,如果有任何一个数据文件或日志文件不存在,则数据库服务报错。
必要时,SMON进行会进行实例恢复。)

(当然,数据库管理员也可以选择Restricted模式打开数据库,这样只有具有管理员权限的用户才能访问数据库)

Oracle 数据库实例的关闭方式 ---详解

数据库实例处于打开状态

shutdown normal
强制执行一个检查点,关闭文件。等待所有事务结束。等待所有的会话断开连接。不允许新的连接。数据缓冲区和日志缓冲区中的内容写入文件。后台进程被中断。SGA被释放。数据库服务关闭。卸载数据库。
shutdown transactional
强制执行一个检查点,关闭文件。等待所有事务结束。不等待会话断开连接。不允许新的连接。数据缓冲区和日志缓冲区中的内容写入文件。
shutdown immediate
强制执行一个检查点,关闭文件。不等待事务结束,未提交的事务回滚,数据缓冲区和日志缓冲区中的内容写入文件。不等待会话断开连接。不允许新的连接。
shutdown abort
立刻关闭数据库,相当于断开电源。再启动数据库的时候进行滚日志操作来恢复数据库。只有当必须的时候才用此命令,例如:当没有事务执行的时候,当实力启动出现问题的时候,当紧急事务发生的时候(马上就要断电)。不允许新的连接。

相关内容