ITPub博客

首页 > 数据库 > Oracle > Checkpoint CNT和SCN

Checkpoint CNT和SCN

原创 Oracle 作者:myy10146 时间:2014-02-25 17:04:18 0 删除 编辑

控制文件中包含的重要信息有:

1、每个数据文件的 检查点计数:Checkpoint counter(checkpoint CNT)

2、每个数据文件的 checkpoint SCN:当checkpoint完成后,ORACLE将Datafile Checkpoint SCN号存放在控制文件中。
select name,checkpoint_change# from v$datafile;

3、每个数据文件的 Stop SCN:select name,last_change# from v$datafile;

 

数据文件头的信息:

1、检查点计数:Checkpoint counter(checkpoint CNT)

2、检查点SCN:open数据库时也叫数据文件Start SCN,open状态下 is the on-disk SCN, the SCN when the checkpoint write is done to the data file。
select name,checkpoint_change# from v$datafile_header;

由于表空间的创建时间不尽相同,所以不同表空间/数据文件的Checkpoint cnt通常是不同的.

我们知道:

在数据库open的过程中,Oracle要进行两次检查.

第一次检查每个数据文件头中的Checkpoint cnt是否与对应控制文件中的每个数据文件Checkpoint cnt一致.

如果相等,进行第二次检查,如果不相等,就需要进行Media Recovery

第二次检查每个数据文件头的开始SCN和对应控制文件中的每个数据文件结束SCN是否一致
如果结束SCN等于开始SCN,则不需要对那个文件进行恢复。如果Stop SCN的值为无穷大,就需要做Instance Recoveryoracle会到控制文件中读取low cache rba,这就是检查点位置.从此处开始应用重做信息,应用到on disk rba处.on disk rba是磁盘中重做日志文件的最后一条重做记录的rba。

对每个数据文件都完成检查后,打开数据库.同时将控制文件中每个数据文件的结束SCN设置为无穷大.

当数据库以shutdown normal ,shutdown immediate关闭时,oracle将在真正关闭这前,执行一个checkpoint 产生一个 checkpoint SCN(既更新每个datatfile 的start SCN)并将datafile 头部的 start SCN对应的写到control file 中每个datafile 的stop SCN。

盖国强所做的实验:http://www.eygle.com/archives/2006/08/event_controlfile_datafile.html

 

checkpoint count(checkpoint cnt)在full checkpoint时才会去增加cnt,而full checkpoint只再以下几种情况发生

  1. At each switch of the redo log files.
  2. Directly by the ALTER SYSTEM SWITCH LOGFILE command.
  3. Directly with the ALTER SYSTEM CHECKPOINT command.
  4. hot backup.
  5. offline.

 

附:Media Recovery is required

  1. when a data file is restored from backup checkpoint counts in the data files are not equal to the checkpoint counts in the control file
  2. file was offlined without a checkpoint
  3. when using a backup control file

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

请登录后发表评论 登录
全部评论

注册时间:2011-04-12

  • 博文量
    11
  • 访问量
    55225