暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片
Undo表空间管理
865
36页
27次
2021-08-15
5墨值下载
1 、对于 DML 语句来说,只要修改了数据块, Oracle 数据库就会将修改前的数据
块保留下来,保存在 undo segment 里面,而 undo segment 则保存在 undo 表空间
2 undo 的管理
1 、自动 undo 管理( Oracle9i 开始) AUM
2 、手工 undo 管理 MUM
9i 以后,就建议使用 AUM ,因此就不再讨论 MUM
一条 DML 语句的执行流程 update t set coll=‘A where coll=‘B’
1 、在 shared pool 里面进行解析,从而生成执行计划
2 、根据执行计划,得出 coll=‘B’ 的记录存放在 10 号数据文件的 54 号数据块
里面
3 、服务器进程首先在 buffer cache 寻找一个可用的 undo 数据块(如果一个
事物已经提交,那么这个事务曾经使用过的 undo 数据块就可以被使用),如
果没有发现,则到 undo 表空间里找到一个可用的 undo 数据块,并调入到
buffer cache 。假设获得的 undo 数据块号为 24 号,位于 11 undo 数据文
件里
4 、将改变前的值,也就是 B 放入 24 undo 数据块( buffer cache 中)
5 、由于 undo 数据块发生了变化(只要是数据块发生变化,那么就产生重做
记录),于是产生重做记录,假设重做记录号是 120
6 、在 buffer cache 里面找到 54 号数据块,如果没有,则从 10 号数据文件
调入
7 、将改变后的值,也就是 A 放入 54 号数据块
8 、由于数据块发生了变化,于是产生重做记录,假设重做记录号是 121
of 36
5墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜