Oracle一致读原理

Posted jingweiyoung

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle一致读原理相关的知识,希望对你有一定的参考价值。

首先了解2个概念:

1. SCN(System Change Number),一个只会增加不会减少的数字, 存在于Oracle最小单位块中,当某块改变时SCN就会递增。

2. 数据库回滚段记录事物槽(事物槽是用来分配回滚空间的),如果更新了某块,事物就被写进事物槽里,如果未提交或回滚,

该块就存在活动事物,数据库读到此处就会识别到这种情况的存在。

当我们发起查询请求时,数据库会获取当前时间的SCN,用来在查询过程中和每个数据块头部ITL槽中的SCN号进行比较,如果

小于查询时间的SCN,则表示在这段时间内未被更新过,如果大于,则表示在查询时间点之后被改过了,此时需要根据ITL槽中

记录的undo块的地址找到undo块,将undo块中被修改前的数据读出。

摘自:《收货不止Oracle》

以上是关于Oracle一致读原理的主要内容,如果未能解决你的问题,请参考以下文章

ORACLE 物理读 逻辑读 一致性读 当前模式读总结浅析

ORACLE 物理读 逻辑读 一致性读 当前模式读总结浅析

深入解析:Oracle由11g而始的数据库一致读行为的改变

oracle的事务隔离级别和读一致性

oracle--------一致性读

Oracle学习笔记 读一致性(ORA-01555错误机制分析)及Undo表空间大小设置