orcle数据库启动验证

本文介绍Oracle数据库启动过程中如何验证数据文件一致性,包括控制文件与数据文件之间的校验流程及实例恢复条件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库启动验证

alter session set events 'immediate trace name file_hdrs level 10'  dump 所有数据文件头部的控制文件项(一部分信息来自控制文件,一部分来自数据文件)

如下dump来理解数据的启动验证
SQL> shutdown abort
ORACLE 例程已经关闭。
SQL>
SQL> startup  mount
ORACLE 例程已经启动。
Total System Global Area  647204864 bytes
Fixed Size                  2178536 bytes
Variable Size             566231576 bytes
Database Buffers           71303168 bytes
Redo Buffers                7491584 bytes
数据库装载完毕。
SQL> alter session set events 'immediate trace name file_hdrs level 10';
会话已更改。
SQL> alter database open;
数据库已更改。
SQL> select * from v$diag_info where name='Default Trace File';
   INST_ID NAME
---------- ----------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
         1 Default Trace File
f:\app\administrator\diag\rdbms\ctw\ctw\trace\ctw_ora_6308.trc
SQL>

转储内容如下,选取一个数据文件分析

*** 2014-11-21 15:40:35.323
 
DATA FILE #5: 
  name #9: F:\APP\ADMINISTRATOR\ORADATA\CTW\PRODO1.DBF
creation size=1310720 block size=8192 status=0xe head=9 tail=9 dup=1
 tablespace 5, index=6 krfil=5 prev_file=0
 unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
 Checkpoint cnt:1267 scn: 0x0000.0076ee60 11/21/2014 09:16:25
 Stop scn: 0xffff.ffffffff 11/21/2014 08:41:59
 Creation Checkpointed at scn:  0x0000.00047e9c 07/22/2014 16:54:07
 
 以上是控制文件部分转储,这部分信息记录了
 检查点记数 : Checkpoint cnt:1267
 检查点 scn:: 0x0000.0076ee60 11/21/2014 09:16:25
 数据文件stop scn : Stop scn: 0xffff.ffffffff 11/21/2014 08:41:59

 
 
 以下是数据文件头的信息:
 检查点Checkpointed at scn:  0x0000.0076ee60 11/21/2014 09:16:25
 检查点计数:chkpt cnt: 1267 ctl cnt:1266

 
 V10 STYLE FILE HEADER:
Compatibility Vsn = 186646528=0xb200000
Db ID=1369339915=0x519e780b, Db Name='CTW'
Activation ID=0=0x0
Control Seq=35420=0x8a5c, File size=1310720=0x140000
File Number=5, Blksiz=8192, File Type=3 DATA
Tablespace #5 - TTS_PROD01  rel_fn:5 
Creation   at   scn: 0x0000.00047e9c 07/22/2014 16:54:07
Backup taken at scn: 0x0000.00000000 01/01/1988 00:00:00 thread:0
 reset logs count:0x32dfa9cb scn: 0x0000.00000001
 prev reset logs count:0x0 scn: 0x0000.00000000
 recovered at 11/21/2014 08:32:04
 status:0x4 root dba:0x00000000 chkpt cnt: 1267 ctl cnt:1266
begin-hot-backup file size: 0
Checkpointed at scn:  0x0000.0076ee60 11/21/2014 09:16:25

数据库在启动的过程:
先检查数据文件头中的chkpt cnt(检查计数)是否和对应的控制文件中的chkpt cnt是否一致,如果不一致文件需要介质恢复或者是控制文件过旧
第二次检查数据文件头的开始scn和对应的控制文件中结束scn是否一致,如果结束scn等于开始scn,则不需要实例恢复,否则需要实例恢复

如下来看oracle启动验证:
if (检查点SCN < 文件头SCN)
  then "控制文件来自备份,需要进行不完全恢复,并用resetlog方式打开”
eles if (检查点SCN > 文件头SCN)
  then "数据文件来自备份,需要log进行完全或不完全恢复"
else if (检查点SCN = 文件头SCN)  
   then "数据库能正常open,还需要判断是否需要实例恢复"
   if (终止SCN = 启动SCN)
       then "数据库打开时不需要实例恢复“
   else if (终止SCN = NULL)
       then "数据库需要实例恢复"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值