Oracle 数据库实例的启动阶段及关闭模式

前端之家收集整理的这篇文章主要介绍了Oracle 数据库实例的启动阶段及关闭模式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
一、数据库实例启动的三个阶段
启动数据库分为三个阶段:
Startup nomount; --startup缺省为startup open
Alter database mount;
Alter database open;
可以通过select status from v$instance;来查看实例启动到哪个状态。
select * from v$database;
第一阶段:Nomount@H_301_43@
条件:@H_301_43@
参数文件存在@H_301_43@
参数文件中描述的目录存在(adump,bdump,cdump,udump)@H_301_43@
作用:@H_301_43@
修改参数文件@H_301_43@
查看部分v$数据字典@H_301_43@
创建数据库(后自动open)@H_301_43@
创建控制文件(后自动mount)@H_301_43@
数据库:(加载了实例)@H_301_43@
加载了参数文件@H_301_43@
申请了内存(SGA)@H_301_43@
启动了后台进程@H_301_43@
命令:@H_301_43@
startup nomount@H_301_43@
alter database mount;@H_301_43@
@H_301_43@
第二阶段:Mount@H_301_43@
控制文件存在且已同步@H_301_43@
并且必须是好的(名字一致,个数一致,路径一致,scn号一致)@H_301_43@
修改参数@H_301_43@
查看所有v$数据字典@H_301_43@
把数据文件离线@H_301_43@
备份、恢复@H_301_43@
修改数据库的归档模式@H_301_43@
把.dbf .log文件搬家@H_301_43@
数据库:@H_301_43@
加载了控制文件@H_301_43@
加载了所有的v$数据字典@H_301_43@
Startup mount@H_301_43@
alter database open;@H_301_43@
alter database open read only;@H_301_43@
@H_301_43@
第三阶段:Open@H_301_43@
数据文件存在且已同步@H_301_43@
日志文件存在@H_301_43@
可以查所有字典@H_301_43@
把表空间离线@H_301_43@
操作数据(表,视图)@H_301_43@
申请了内存@H_301_43@
根据控制文件的描述,加载相应的数据文件,和日志文件@H_301_43@
加载了所有的字典@H_301_43@
startup open@H_301_43@
另外特别的:startup force 等同于 shutdown abort+ startup open
二、数据库实例关闭的四种模式
shutdown immediate
@H_301_43@ normal@H_301_43@ transactional@H_301_43@ immediate@H_301_43@ abort@H_301_43@ 允许新连接@H_301_43@ 0@H_301_43@ 0@H_301_43@ 0@H_301_43@ 0@H_301_43@ 等待会话结束@H_301_43@ 1@H_301_43@ 等待事务结束@H_301_43@ 1@H_301_43@ 检查点并关闭文件@H_301_43@ 1@H_301_43@ 0@H_301_43@ @H_301_43@ 做一个检查点,
关闭数据文件
启动时不需要实例恢复@H_301_43@ 做一个检查点,
关闭数据文件
启动时不需要实例恢复@H_301_43@ 做一个检查点,
关闭数据文件
启动时不需要实例恢复@H_301_43@ 不做检查点,
关闭数据文件
启动时自动进行实例恢复(mount->open)@H_301_43@
三、打开数据库后,如果有以下项丢失,数据库会失败:
• 任何控制文件
• 属于系统表空间或还原表空间的数据文件
• 整个重做日志组(只要组中至少有一个成员可用,实例就会保持打开状态。)
abort 等同于停电,且在下次正常启动恢复之前,不允许在mount 状态下修改参数,例如归档、闪回,检查点是为了保证数据一致性,写入数据文件
四、linux下dbstart,dbshut启动关闭数据库
参考文献:

猜你在找的Oracle相关文章