楼主: haitian

[精华] update的机制问题

[复制链接]
论坛徽章:
0
51#
发表于 2005-3-28 09:31 | 只看该作者

真实好贴子

值得我学习

使用道具 举报

回复
论坛徽章:
3
数据库板块每日发贴之星
日期:2005-10-10 01:01:29数据库板块每日发贴之星
日期:2005-10-13 01:01:302011新春纪念徽章
日期:2011-02-18 11:43:35
52#
发表于 2005-10-17 22:07 | 只看该作者
谢谢BT

使用道具 举报

回复
论坛徽章:
70
夏利
日期:2013-09-29 21:02:15天蝎座
日期:2016-03-08 22:25:51嫦娥
日期:2014-03-04 16:46:45ITPUB年度最佳技术原创精华奖
日期:2014-03-04 16:19:29马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:11
53#
发表于 2006-7-2 23:08 | 只看该作者
请问好心的BITI ,5170-undointernalspresentation.pdf这篇资料是再哪找的?

使用道具 举报

回复
论坛徽章:
14
奥运会纪念徽章:拳击
日期:2008-04-24 10:00:15CTO参与奖
日期:2009-02-12 11:45:482012新春纪念徽章
日期:2012-02-07 09:59:35ITPUB季度 技术新星
日期:2012-02-16 14:53:16鲜花蛋
日期:2012-03-19 18:10:462013年新春福章
日期:2013-02-25 14:51:242014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11
54#
发表于 2006-7-3 14:29 | 只看该作者
收获不小啊

使用道具 举报

回复
论坛徽章:
0
55#
发表于 2006-7-7 13:02 | 只看该作者
好久没有上来了,你们说得真强.

使用道具 举报

回复
论坛徽章:
16
ITPUB元老
日期:2006-08-12 12:42:51授权会员
日期:2006-08-12 12:36:09数据库板块每日发贴之星
日期:2006-11-19 01:03:11数据库板块每日发贴之星
日期:2007-04-23 01:05:28会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44BLOG每日发帖之星
日期:2008-06-29 01:02:22
56#
发表于 2006-7-8 16:33 | 只看该作者
update操作太复杂了。仔细研究可一写一本书。
牵涉到语句的解析,latch的管理,lock的管理,事务的管理,undo和redo的产生和管理,内存的管理等等。太细节的东西实在搞不清。

使用道具 举报

回复
论坛徽章:
16
ITPUB元老
日期:2006-08-12 12:42:51授权会员
日期:2006-08-12 12:36:09数据库板块每日发贴之星
日期:2006-11-19 01:03:11数据库板块每日发贴之星
日期:2007-04-23 01:05:28会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44BLOG每日发帖之星
日期:2008-06-29 01:02:22
57#
发表于 2006-7-8 16:45 | 只看该作者
1修改block之前先将redo entry写入 redo buffer (lgwr写redo log file)
2将对应的undo写回滚段,写回滚段之前写回滚的redo entry到 redo buffer (lgwr写redo log file)
3修改block信息 (block写入到数据文件之前 保证对应redo entry已经写入redo log file)

我对
如果第一步完成,数据库crash; 如果redo entry 在redo buffer 中,则恢复的时候不会处理该redo entry,这句话的理解:如果redo entry 在redo buffer 中,表示有关事务还没有提交,这时数据库crash,undo和redo都还在内存中,对db做过的操作在恢复时不用管的,恢复操作根本不知道这些操作。

使用道具 举报

回复
论坛徽章:
181
慢羊羊
日期:2015-03-04 14:19:442015年新春福章
日期:2015-03-06 11:57:31
58#
发表于 2006-7-10 10:08 | 只看该作者
学oralce也有好几年,到现在连DML语言中发生的进程和databuffer,rollback,log之间的关系仍然缺乏一个深刻地认识,哎

使用道具 举报

回复
论坛徽章:
18
ITPUB元老
日期:2005-02-28 12:57:002010新春纪念徽章
日期:2010-03-01 11:20:00
59#
发表于 2006-11-3 15:05 | 只看该作者

Re: Re: Re: Re: o

最初由 玉面飞龙 发布
[B]

如上部分我的理解有错误。应该是rainy说的先写undo的日志到log buffer.

1将对应的undo写回滚段,写回滚段之前写回滚的redo entry到 redo buffer (lgwr写redo log file)

2修改block之前先将data block redo entry写入 redo buffer (lgwr写redo log file)

3修改block信息 (block写入到数据文件之前 保证对应redo entry已经写入redo log file)

先写undo block redo entry表示恢复的时候就先将undo block redo 写到 undo block,如果rollback的话,也有内容可以rollback. [/B]


同意玉面飞龙的看法.

使用道具 举报

回复
论坛徽章:
1
生肖徽章2007版:鸡
日期:2008-01-02 17:35:53
60#
发表于 2007-1-7 09:41 | 只看该作者
研究精華帖!!!
受益匪

使用道具 举报

回复

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

本版积分规则 发表回复

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