日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Oracle數(shù)據(jù)庫UNDOLOG日志回放過程

Oracle數(shù)據(jù)庫UNDO LOG日志回放過程的相關(guān)知識是本文我們主要要介紹的內(nèi)容,接下來我們看一段描述:一個看起來正確的過程,系統(tǒng)宕機(jī)后需要重啟,重啟過程中需要對事務(wù)涉及到的數(shù)據(jù)進(jìn)行“整理”,包括:宕機(jī)時刻尚未提交的事務(wù)對數(shù)據(jù)的修改需要回滾。實(shí)現(xiàn)整理的過程稱之為“日志回放”。通過從后向前回放UNDO LOG日志,直到找到commit點(diǎn)為止,這樣就保證了數(shù)據(jù)一致性。

上面的過程看起來很***。真的***嗎?問題出在這里:如果系統(tǒng)中同時有多個事務(wù)在執(zhí)行,UNDO LOG中的commit點(diǎn)該如何定義呢?可能存在多個等待Commit的點(diǎn)。(繼續(xù)之前考慮一下Global Serializability,多個commit點(diǎn)與此沖突嗎?)

實(shí)戰(zhàn):可以工作的過程

方法1:系統(tǒng)重啟回放日志,只需要從后往前掃描日志文件,對于所有沒有commit的事務(wù)按照日志記錄中的數(shù)據(jù)做回滾操作。這個方法肯定是可以工作的,其問題在于要求掃描所有commit日志,代價不菲。

方法2:使用Checkpoint,拉起一個大柵欄。Checkpoint可以看做是對引言中“commit點(diǎn)“的展開,它好比一個較寬的柵欄(fence),將所有已經(jīng)開始、尚未commit的事務(wù)都記錄下來,等待這些事務(wù)完成之后再在日志中寫入一條“在這個柵欄架起來之前的那些狀態(tài)一致了”的標(biāo)記。

為什么是“架起來之前的”呢?因?yàn)樵诩芷饢艡诤笥幸欢蔚却聞?wù)完成時間,這段時間里會有新的事務(wù)發(fā)起,他們也會繼續(xù)寫日志,對于這些事務(wù)Checkpoint不關(guān)注。

生成checkpoint的過程:

1. 在日志中寫下CREATE_CKPT(T1,T2,..,Tn),其中Ti表示寫入CREATE_CKPT之前尚未完成的事務(wù)

2. 等待T1~Tn這些事務(wù)完成。在等待過程中可能會有新的事務(wù)寫日志。

3. 在日志中寫入END_CKPT

日志回放過程:

從后往前掃描日志,如果先遇到END_CKPT,那么說明CREATE_CKPT中記錄的T1~Tn這些事務(wù)都已經(jīng)完成,將日志回放至CREATE_CKPT處即可。之前的日志均可以丟棄。如果先遇到CREATE_CKPT,那么說明T1~Tn這些事務(wù)可能還有沒完成的,那么為了保證Global Serialization,將日志回滾到T1~Tn中最早出現(xiàn)的那一條之前即可。例如T3是T1~Tn中***開始的事務(wù),則將事務(wù)回滾檢查做到T3之前即可,因?yàn)門3前的所有數(shù)據(jù)均已經(jīng)確保Commit了。

關(guān)于Oracle數(shù)據(jù)庫UNDO LOG日志回放過程的相關(guān)知識就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!


分享題目:Oracle數(shù)據(jù)庫UNDOLOG日志回放過程
文章源于:http://www.dlmjj.cn/article/cdsisgd.html