暂无图片
Oracle
我来答
分享
风一样的流年
2022-11-19
Oracle
如何理解Oracle的前镜像
我来答
添加附件
收藏
分享
问题补充
5条回答
默认
最新
shunwahⓂ️

Oracle前镜像数据读
“Undo前镜像”是Oracle早期推出的特性之一,也是在诸多数据库产品中异军突起的致胜法宝。当我们在一个会话中启动事务,对数据进行增加、修改和删除操作的时候,只要没有提交事务,其他会话只能看到数据的旧版本,也就是事务会话修改之前的版本。所以,在Oracle中,select操作不会阻塞任何操作,也不会被任何操作所阻塞。

1、Undo与前镜像

这样的特性就是依赖Oracle推出的Undo前镜像机制。当我们开启事务,修改一个数据块的时候,Oracle首先会修改数据块块头的ITL(事务槽)信息,将当前事务信息(xid事务标识)写入到ITL中的一行。之后标记下这个事务对应的Undo空间地址。之后,才能进行数据块的修改。

在修改数据块的过程中,Oracle的Server Process会将数据块的原有内容(对Update和Delete操作而言),保存到Undo表空间上Undo段的位置上。

Undo段内容有很多的用途。当另外的会话需要访问数据块时,首先会去检查数据块的ITL事务槽信息,查看要访问的数据块是不是正在被修改。如果正在被修改,就根据ITL上面留下的事务槽信息访问Undo段。同时,如果只有一部分数据被修改,Oracle Server Process还要结合数据块中未被修改的内容进行结果集合拼装。

只有在事务正式完成,commit或者rollback之后,Undo段中的extent状态才不再是Active。非Active状态的Undo也有其价值,Oracle的“多版本一致读”、“Flashback”等特性,都是基于对非Active状态Undo的数据利用。

https://blog.csdn.net/haiross/article/details/10967951

暂无图片 评论
暂无图片 有用 2
愤怒的蜗牛
2022-11-19
风一样的流年

谢谢

暂无图片 评论
暂无图片 有用 0
virvle

暂无图片 评论
暂无图片 有用 0
手机用户0856

ghjhjhjh

暂无图片 评论
暂无图片 有用 0
Qin
👍
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏