oracle11g 手工热备实验

在做手工热备实验时,结束表空间备份模式后,
将当前重做日志文件信息写入归档日志文件  alter system archive log current;
再次查看当前数据文件检查点信息
select checkpoint_change#,file# from v$datafile;
发现
CHECKPOINT_CHANGE#        FILE#
------------------ ----------
           1025646            1
           1025646            2
           1025646            3
           1025827            4
           1025646            5
4号文件的检查点并没有提升。求解惑!!!
标签: 暂无标签
yoyolachel

写了 1 篇文章,拥有财富 69,被 2 人关注

转播转播 分享分享 分享淘帖
回复

使用道具

P4 | 发表于 2013-12-9 16:14:45
找到答案了。感谢百度

参考Maclean Liu的这篇文章:logfile switch causes incremental checkpoint?

注意里面的一段话:
/* logfile switch 日志文件切换引起的是一种slow慢的完全检查点,它不同于alter system checkpoint(ASC),
   ASC要求的脏块写出和控制文件及数据文件头更新时要立即完成的,也就是说当alter system checkpoint语句返回"System altered."
   后以上工作都已经完成了;而alter system switch logfile或者自然的日志切换引发的是一种慢的完全检查点,
   它在返回"System altered"时不要求写脏块等工作必须已经完成
*/

上面这段话的意思是说alter system switch logfile命令发出后,数据库不是立即要求写脏块的,既然没有立即写脏块,那控制文件及数据文件头也就没有更新了。所以你发出alter system switch logfile命令后,马上查询视图V$DATABASE和V$DATAFILE_HEADER,看到的信息可能跟之前的一模一样。这时,要么等几分钟再查询那两个视图,要么按照Maclean Liu文章中提到的操作。或许就可以看到不一样的CHECKPOINT_CHANGE#了。
回复

使用道具

您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

意见
反馈