文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

undo的extend和steal机制

2024-04-02 19:55

关注

undo的段头存在着一个SEQ值,当回滚段使用从A区到B区的时候,相对应的SEQ值便会加1,例如A区的SEQ值是6,则undo段使用到B区的时候变会成为7。

但是undo空间是循环使用的,当该undo段中的事务提交过了之后,相对应的块就可以被覆盖掉。如下:

undo的extend和steal机制

当3号区使用完全之后,oracle将会重新使用1号区,并将其SEQ值加一,改为7,以此类推,新1号区使用完了之后,2号区也会被覆盖,SEQ值改为8.

但是undo空间是循环使用的,当该undo段中的事务提交过了之后,相对应的块就可以被覆盖掉。如下:

undo的extend和steal机制

当3号区使用完全之后,oracle将会重新使用1号区,并将其SEQ值加一,改为7,以此类推,新1号区使用完了之后,2号区也会被覆盖,SEQ值改为8.

undo块覆盖的原则是即将被覆盖的undo块必须小于前一个已经覆盖过的SEQ值。如果如下图,

undo的extend和steal机制

2号区一直有一个事务占住未被释放,等到undo再次重用到1号区的时候,1号区的值变为10。这个时候由于2号区的事务一直未被释放,oracle无法对2号区进行覆盖,也不能跳过2号区去重用3号区的undo块。这个时候oracle便会进行一次extend,在一号区和二号区中间新增一个undo区,我们称为新2号区。然后oracle便会在新2号区进行覆盖,在新2号区覆盖完成之后,如果老2号区还未提交事务,oracle便会再次申请extend,直到事务提交。这样会造成undo段短时间内消耗大量空间。如下:

undo的extend和steal机制

如果该2号区在undo段的开头部分,这样会导致undo段大部分空间不能重用,所以oracle增加了一种steal机制。

首先确定的是undo偷窃机制的基本单位是区。例如发生上述情况:

undo的extend和steal机制

原二号区:即三号区一直有事务在占用部分块,导致其无法被覆盖。那oracle的undo偷窃机制会启到作用,其他undo段将会把4号区偷走,此undo段便会剩下三个区,然后在新2号区后进行extend。

undo的extend和steal机制

但是如果三号区的事务一直不提交,oracle会一直extend,导致3号区之前的区一直无法被重用,undo段一直在增加,可能会报错undo空间无法扩展。所以事务无论大小,还是要尽快提交。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯