ITPub博客

首页 > Linux操作系统 > Linux操作系统 > checkpoint

checkpoint

原创 Linux操作系统 作者:xjz6169 时间:2010-06-04 17:31:05 0 删除 编辑

checkpoint意义

快速恢复数据库实例

 

checkpoint产生 

1.手工产生 alter system checkpoint

2.日志组切换 alter system switch logfile

3.dbwr写脏数据前

 

SCN与checkpoint_change#的关系

SCN oracle内部时钟,每三秒刷新一次,一直改变

checkpoint_change#是做检查点那一刻的SCN,如果数据库没有被操作,checkpoint_change#不变

 

checkpoint执行过程

1.事务commit,lgwr写logfile,之后做检查点,ckpt更新controlfile中system scn的记录,再更新controlfile中datafile scn的记录,之后ckpt更新datafile中start scn,然后dbwn写datafile,写完最后ckpt再次更新controlfile的End scn

(注意 ckpt写controlfile的SCN的同时也记录了RBA(redo block address),该地址标明从redo恢复时的起点)

 

四个SCN

1.system scn (写入controlfile)

更新controlfile中的system scn

select checkpoint_change# from v$database;

2.datafile scn (写入controlfile)

更新controlfile中的记录的datafile的scn

select checkpoint_change# from v$datafile;

3.start scn (写入datafile)

更新datafile中的start scn

select  checkpoint_change# from v$datafile_header;

4.end scn (写入controlfile)

更新controlfile中datafiled的End scn

select name,last_change# from v$datafile

systen scn=start scn= End scn时

数据库正常打开

当start scn<>End scn时

表示数据库事务还未全部写入数据文件时异常中断,需要实例恢复

当system<>start scn时

a.system scn

controlfile丢失且redolog也丢失,数据文件可用,恢复该文件,由于controlfile中的system scn已过期又没有当前的redlog前滚,造成小于start scn,需要reset log

恢复需要采用using backup controlfile

b.system scn>start scn

controlfile丢失且redolog可用,数据文件可用,恢复该文件,虽然controlfile中的system scn已过期但又当前的redlog可前滚,所以恢复后的system scn>=start scn,则不需要resetlog

恢复时就不需要加using backup controlfile子句了

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

下一篇: 正确使用索引
请登录后发表评论 登录
全部评论

注册时间:2010-04-26

  • 博文量
    3
  • 访问量
    4937