oracle segment undo_Oracle Undo工作原理
一致性讀。
同時(shí)也衍生出了一些新的
功能,
比如
Flashback?query
。
傳統(tǒng)的
undo
是通過
undo?segment
來(lái)管理的,
我們看下面的示例:
事務(wù)開始,必須首先在
data?block
中分配
ITL
,
ITL
中記錄了事務(wù)
ID(XID)
,
XID
由三部分內(nèi)容組成:
XIDUSN(
回滾段號(hào)
)
,
XIDSLOT(
回滾段槽號(hào)
)
,
XIDSQN(
序列號(hào)
)
,在
Undo?segment
header
中有一個(gè)事務(wù)表,記錄該回滾段上的事務(wù)信息,每個(gè)事務(wù)都
會(huì)占據(jù)了一個(gè)回滾槽,
XID
對(duì)應(yīng)一個(gè)
UBA(undo?block?address)
,
表示該事務(wù)回滾信息的開始位置。
在上面的例子中,事務(wù)分別在
T1,T2,T3
時(shí)間執(zhí)行了三個(gè)操作,更新了三個(gè)
block
中的數(shù)據(jù),在每
個(gè)
data?block
中都存在一個(gè)
ITL
,指向
undo?segment?header
中的事務(wù)表。
undo
信息分別存放在三個(gè)
undo?block
中,
undo
信
息是一個(gè)鏈表結(jié)構(gòu),而
undo?segment?header
中的
uba
則指向了
最后一個(gè)
undo?block
,
這也是回滾的起始位置。
如果事務(wù)需要回滾,
只需要在
undo?segment?header
中的事務(wù)表中找到事務(wù)回滾的起
始位置,然后通過
undo
鏈表,就可以依次回滾整個(gè)事務(wù)。
總結(jié)
以上是生活随笔為你收集整理的oracle segment undo_Oracle Undo工作原理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu 中vi的使用方法
- 下一篇: ubuntu安装curl报错或get u