Chinaunix首页 | 论坛 | 博客
  • 博客访问: 646041
  • 博文数量: 66
  • 博客积分: 15
  • 博客等级: 民兵
  • 技术积分: 2204
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-26 21:43
个人简介

曾就职于阿里巴巴担任Oracle DBA,MySQL DBA,目前在新美大担任SRE。[是普罗米修斯还是一块石头,你自己选择!] 欢迎关注微信公众号 “自己的设计师”,不定期有原创运维文章推送。

文章分类

全部博文(66)

文章存档

2017年(2)

2016年(3)

2015年(7)

2014年(12)

2013年(42)

分类: Oracle

2013-12-13 23:40:03

看了盖大师对scn与cnt的理解,感觉豁然开朗,于是下决心写一篇贴子,深入其中.
      在数据库open的过程中,oracle进行检查中包括以下两项。
      第一次检查数据文件头中的计数器(Checkpoint cnt)是否和控制文件中检查点计数(Checkpoint cnt)一致。此步骤检查用于确认数据文件是否来自同一版本,而不是从备份中恢复而来(因为Checkpoint不会被冻结,会一直被修改).
     试验:
     首先转储控制文件  
SQL> alter session set events 'immediate trace name controlf level 12';
会话已更改。
SQL> alter tablespace system begin backup;
表空间已更改。
SQL> alter session set events 'immediate trace name controlf level 12';
会话已更改。
SQL> alter system checkpoint;
系统已更改。
SQL> alter session set events 'immediate trace name controlf level 12';
会话已更改。
SQL> alter tablespace system end backup;
表空间已更改。
SQL> alter session set events 'immediate trace name controlf level 12';
会话已更改。
SQL> select value from v$diag_info where name='Default Trace File';
VALUE
--------------------------------------------------------------------------------
e:\app\xiaocai\diag\rdbms\xiaocai\xiaocai\trace\xiaocai_ora_5012.trc
正常情况下转储控制文件
DATA FILE #1: 
  (name #7) E:\APP\XIAOCAI\ORADATA\XIAOCAI\SYSTEM01.DBF
creation size=0 block size=8192 status=0xe head=7 tail=7 dup=1
 tablespace 0, index=1 krfil=1 prev_file=0
 unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
 Checkpoint cnt:493 scn: 0x0000.001df620 03/30/2010 13:38:55
 Stop scn: 0xffff.ffffffff 03/30/2010 13:22:18
 Creation Checkpointed at scn:  0x0000.0000000e 02/25/2009 05:02:02
 thread:0 rba:(0x0.0.0)
当发出begin backupup后
DATA FILE #1: 
  (name #7) E:\APP\XIAOCAI\ORADATA\XIAOCAI\SYSTEM01.DBF
creation size=0 block size=8192 status=0xe head=7 tail=7 dup=1
 tablespace 0, index=1 krfil=1 prev_file=0
 unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
 Checkpoint cnt:494 scn: 0x0000.001e4a86 03/30/2010 18:03:12
 Stop scn: 0xffff.ffffffff 03/30/2010 13:22:18
 Creation Checkpointed at scn:  0x0000.0000000e 02/25/2009 05:02:02
 thread:0 rba:(0x0.0.0)
计数器增加,对表空间的begin backup会执行一次表空间检查点
执行手工检查点
在表空间热备份模式下,手工检查点后,Checkpoint cnt增加,但是SCN不再改变。表空间处于热备份情况下,数据文件检查点会冻结
DATA FILE #1: 
  (name #7) E:\APP\XIAOCAI\ORADATA\XIAOCAI\SYSTEM01.DBF
creation size=0 block size=8192 status=0xe head=7 tail=7 dup=1
 tablespace 0, index=1 krfil=1 prev_file=0
 unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
 Checkpoint cnt:495 scn: 0x0000.001e4a86 03/30/2010 18:03:12
 Stop scn: 0xffff.ffffffff 03/30/2010 13:22:18
 Creation Checkpointed at scn:  0x0000.0000000e 02/25/2009 05:02:02
 thread:0 rba:(0x0.0.0)
 End Backup后
 数据文件头的冻结被取消,SCN开始变化
DATA FILE #1: 
  (name #7) E:\APP\XIAOCAI\ORADATA\XIAOCAI\SYSTEM01.DBF
creation size=0 block size=8192 status=0xe head=7 tail=7 dup=1
 tablespace 0, index=1 krfil=1 prev_file=0
 unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
 Checkpoint cnt:496 scn: 0x0000.001e4ac3 03/30/2010 18:04:08
 Stop scn: 0xffff.ffffffff 03/30/2010 13:22:18
 Creation Checkpointed at scn:  0x0000.0000000e 02/25/2009 05:02:02
 thread:0 rba:(0x0.0.0)
如果检查点计数检查通过,则数据库进行第二次检查。第二次检查数据文件头的开始SCN和控制文件中记录的该文件的结束的SCN是否一致,如果控制文件中记录的结束的SCN等于数据文件头的开始SCN,则不需要对那个文件进行修复。
阅读(1699) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~