数据库启动过程中,检查点和SCN的研究

分析数据库启动过程中检查点和SCN的一致性,来决定是否对数据文件进行恢复。[@more@]

1、验证规则

启动过程检测的步骤:

1)比较控制文件和数据文件头中checkpoint cnt的数量是否一致,如果一致,继续下一步。

2)比较控制文件中的stop scn和数据文件头开始scn是否一致,如果一致,说明数据文件吧需要恢复。

2、验证不需要恢复的情况

Sql> startup mount

Sql> alter session set events 'immediate trace name controlf level 8'; #Dump controlfile

Sql> alter session set events 'immediate trace name file_hdrs level 10'; #dump datafile header

Dumpcontrolfile信息:

DATA FILE #1:

(name #10) +DG1/orcl/datafile/system.257.726688597

Checkpoint cnt:76 scn: 0x0000.00083775 08/12/2010 10:28:43

Stop scn: 0x0000.00083775 08/12/2010 10:28:43

Dumpfile header信息:

包含了控制文件记录的信息:

Checkpoint cnt:76 scn: 0x0000.00083775 08/12/2010 10:28:43

Stop scn: 0x0000.00083775 08/12/2010 10:28:43

Creation Checkpointed at scn: 0x0000.00000009 06/30/2005 19:10:11

文件头记录的信息

status:0x2000 root dba:0x00400179 chkpt cnt: 76 ctl cnt:75

begin-hot-backup file size: 0

Checkpointed at scn: 0x0000.00083775 08/12/2010 10:28:43

可见控制文件和数据文件头部ckpt cnt是一致的;

控制文件记录的stop scn等于文件头记录的checkpoint at scn

所以该文件在打开前不需要恢复。

3、验证需要恢复的情况

备份数据文件:

RMAN> backup as copy format '$ORACLE_BASE/ts1.dbf.bak' datafile '+DG1/orcl/datafile/ts1.dbf';

ts1表空间上的数据文件内容作修改:

create table t1 tablespace ts1 as select * from dba_users;

还原数据文件:

Sqplus> startup mount;

Rman> restore datafile 6;

Sql> alter session set events 'immediate trace name controlf level 8'; #Dump controlfile

Sql> alter session set events 'immediate trace name file_hdrs level 10'; #dump datafile header

Dumpcontrolfile信息:

DATA FILE #6:

(name #2) +DG1/orcl/datafile/ts1.dbf

unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00

Checkpoint cnt:25 scn: 0x0000.00083c47 08/12/2010 10:54:34

Stop scn: 0x0000.00083c47 08/12/2010 10:54:34

Dumpfile header信息:

status:0x0 root dba:0x00000000 chkpt cnt: 24 ctl cnt:23

begin-hot-backup file size: 0

Checkpointed at scn: 0x0000.00083b24 08/12/2010 10:52:24

可见控制文件ckpt scn比数据文件头部ckpt cnt1

控制文件记录的stop scn大于文件头记录的checkpoint at scn

说明该文件是从备份还原的,需要恢复。

4、恢复后的验证

Rman> recover database;

Sql> alter session set events 'immediate trace name controlf level 8'; #Dump controlfile

Sql> alter session set events 'immediate trace name file_hdrs level 10'; #dump datafile header

Dumpcontrolfile信息:

DATA FILE #6:

(name #2) +DG1/orcl/datafile/ts1.dbf

Checkpoint cnt:26 scn: 0x0000.00083c47 08/12/2010 10:54:34

Stop scn: 0x0000.00083c46 08/12/2010 10:54:34

Creation Checkpointed at scn: 0x0000.0007a642 08/10/2010 20:19:44

Dumpfile header信息:

prev reset logs count:0x2184ef74 scn: 0x0000.00000001 prev reset logs terminal rcv data:0x0 scn: 0x0000.00000000

recovered at 08/12/2010 11:14:36

status:0x0 root dba:0x00000000 chkpt cnt: 26 ctl cnt:25

begin-hot-backup file size: 0

Checkpointed at scn: 0x0000.00083c46 08/12/2010 10:54:34

thread:1 rba:(0x9.a3d3.10)

可见恢复后,控制文件ckpt scn和数据文件头部ckpt cnt相等;

控制文件记录的stop scn也等于文件头记录的checkpoint at scn

文件可正常打开。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/56630/viewspace-1036683/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/56630/viewspace-1036683/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值