楼主: 晶晶小妹

[原创] 晶晶实验九之详细论述增量检查点篇

[复制链接]
论坛徽章:
24
生肖徽章:狗
日期:2006-09-07 10:14:43数据库板块每日发贴之星
日期:2008-07-26 01:02:20生肖徽章2007版:兔
日期:2008-10-13 11:10:11奥运会纪念徽章:铁人三项
日期:2008-10-24 13:27:21开发板块每日发贴之星
日期:2008-12-27 01:01:09生肖徽章2007版:马
日期:2009-11-18 10:45:032010新春纪念徽章
日期:2010-03-01 11:21:02ITPUB9周年纪念徽章
日期:2010-10-08 09:28:51ERP板块每日发贴之星
日期:2011-05-18 01:01:01ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15
41#
发表于 2008-3-3 22:38 | 只看该作者
学习了,支持!

期待一本合集!

使用道具 举报

回复
论坛徽章:
36
数据库板块每日发贴之星
日期:2008-06-23 01:01:58奥运会纪念徽章:足球
日期:2012-08-21 19:26:212013年新春福章
日期:2013-02-25 14:51:24蜘蛛蛋
日期:2013-05-03 17:38:25一汽
日期:2013-08-19 16:12:56保时捷
日期:2013-10-18 23:41:21阿斯顿马丁
日期:2013-11-11 14:17:47大众
日期:2013-11-17 16:50:19问答徽章
日期:2014-01-13 00:25:10马上有车
日期:2014-08-03 11:06:20
42#
发表于 2008-3-4 00:44 | 只看该作者
晶晶小妹,确实厉害啊,服.我要多多看看.对我理解BACKUP AND RECOVERY,非常有帮助.谢谢.

使用道具 举报

回复
论坛徽章:
129
蓝锆石
日期:2008-08-23 16:25:58萤石
日期:2008-02-26 15:38:51祖母绿
日期:2008-08-18 16:12:54海蓝宝石
日期:2008-02-23 15:06:23紫水晶
日期:2008-08-22 14:58:26红宝石
日期:2008-07-26 15:02:37九尾狐狸
日期:2008-09-16 09:24:50红孩儿
日期:2008-10-26 12:20:09紫蜘蛛
日期:2008-11-19 08:33:41玉兔
日期:2009-02-02 09:09:53
43#
发表于 2008-3-4 08:59 | 只看该作者
支持!

使用道具 举报

回复
论坛徽章:
2
2008新春纪念徽章
日期:2008-02-13 12:43:032010新春纪念徽章
日期:2010-03-01 11:08:24
44#
发表于 2008-3-4 09:20 | 只看该作者
如果发生了实例崩溃,需要在日志文件中找到检查点位置,从此处开始应用所有的重做日志文件,就完成了前滚操作.

这里有一个疑问,在应用重做日志文件时,oracle是如何判断某个数据块是否需要重新apply redo log,因为数据块的内容有可能在实例崩溃前已经写入硬盘,也有可能还未写入硬盘。

难道是每个数据块都有保存对这个数据块最后一次dml操作的rba ? 在做前滚时,这个数据块只应用大于这个rba之后的redo日志?

[ 本帖最后由 fly_bug 于 2008-3-4 09:22 编辑 ]

使用道具 举报

回复
论坛徽章:
2
2008新春纪念徽章
日期:2008-02-13 12:43:032010新春纪念徽章
日期:2010-03-01 11:08:24
45#
发表于 2008-3-4 11:25 | 只看该作者

使用道具 举报

回复
论坛徽章:
76
双子座
日期:2015-07-28 14:26:072012新春纪念徽章
日期:2012-02-13 15:09:52ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15鲜花蛋
日期:2011-08-26 02:02:24管理团队成员
日期:2011-05-07 01:45:082010广州亚运会纪念徽章:皮划艇
日期:2011-04-18 11:24:412011新春纪念徽章
日期:2011-02-18 11:43:342011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:15
46#
发表于 2008-3-4 11:25 | 只看该作者
每个数据文件头 记录 rba

使用道具 举报

回复
论坛徽章:
0
47#
发表于 2008-3-4 11:42 | 只看该作者
原帖由 fly_bug 于 2008-3-4 09:20 发表
如果发生了实例崩溃,需要在日志文件中找到检查点位置,从此处开始应用所有的重做日志文件,就完成了前滚操作.

这里有一个疑问,在应用重做日志文件时,oracle是如何判断某个数据块是否需要重新apply redo log,因为数据块的内容有可能在实例崩溃前已经写入硬盘,也有可能还未写入硬盘。

难道是每个数据块都有保存对这个数据块最后一次dml操作的rba ? 在做前滚时,这个数据块只应用大于这个rba之后的redo日志?

从检查点开始到redo log tail 全部apply ,这样就完成CACHE recovery了,
然后再tansaction forward rollback好了

使用道具 举报

回复
论坛徽章:
38
2010新春纪念徽章
日期:2010-01-04 08:33:082012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:25版主2段
日期:2012-05-15 15:24:11优秀写手
日期:2013-12-18 09:29:08马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14
48#
 楼主| 发表于 2008-3-4 11:48 | 只看该作者
原帖由 fly_bug 于 2008-3-4 09:20 发表
如果发生了实例崩溃,需要在日志文件中找到检查点位置,从此处开始应用所有的重做日志文件,就完成了前滚操作.

这里有一个疑问,在应用重做日志文件时,oracle是如何判断某个数据块是否需要重新apply redo log,因为数据块的内容有可能在实例崩溃前已经写入硬盘,也有可能还未写入硬盘。

难道是每个数据块都有保存对这个数据块最后一次dml操作的rba ? 在做前滚时,这个数据块只应用大于这个rba之后的redo日志?


oracle把所有的脏块,按照首次变脏时的顺序,排成一个队列.就是检查点队列,DBWR沿着这个队列写脏块,在控制文件中,记载着DBWR的写进度.
比如说:检查点队列中有ABCDEF 6个脏块.现在DBWR已经写把ABC写进了磁盘,那么D块的lrba会被记录进控制文件.
实例恢复时,取出控制文件中的所记录的D块的lrba,恢复DEF.3个块就行了.

使用道具 举报

回复
论坛徽章:
2
2008新春纪念徽章
日期:2008-02-13 12:43:032010新春纪念徽章
日期:2010-03-01 11:08:24
49#
发表于 2008-3-4 12:02 | 只看该作者
原帖由 晶晶小妹 于 2008-3-4 11:48 发表


oracle把所有的脏块,按照首次变脏时的顺序,排成一个队列.就是检查点队列,DBWR沿着这个队列写脏块,在控制文件中,记载着DBWR的写进度.
比如说:检查点队列中有ABCDEF 6个脏块.现在DBWR已经写把ABC写进了磁盘,那么D块的lrba会被记录进控制文件.
实例恢复时,取出控制文件中的所记录的D块的lrba,恢复DEF.3个块就行了.


这里存在问题,比如A块执行了两次insert操作,第二次insert操作的rba在D块的lrba之后,那么实际上A块的两次操作的结果都已经写入了磁盘。在实例恢复时,取出控制文件中的所记录的D块的lrba,开始apply日志,那么就会读到A块第二次insert操作的rba,如果这时候又执行了一次insert操作岂不是出问题了?

不知道我说清楚没有?

所以我觉得数据库应该要保留该块最后一次更新的rba或者scn,这样在前滚的时候才可以判断日志中的哪些rba需要apply。

[ 本帖最后由 fly_bug 于 2008-3-4 12:05 编辑 ]

使用道具 举报

回复
论坛徽章:
2
2008新春纪念徽章
日期:2008-02-13 12:43:032010新春纪念徽章
日期:2010-03-01 11:08:24
50#
发表于 2008-3-4 13:28 | 只看该作者

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表