[資料庫]關於Commit的觀念問題 - 考試

Table of Contents

講義上的定義是
"當交易T中所有存取DB的操作皆已成功執行,
且可能影響資料庫的動作皆已記錄於系統日誌時
此交易即進入委任點"

我想問的是以下的觀念有錯嗎?

(一)
系統日誌有分

1. 還在主記憶體的系統日誌
2. 已經寫到磁碟的系統日誌

(二)
當含有<commit, T>內容的系統日誌寫回磁碟,代表資料庫已經異動
意即還在主記憶體,含有<commit, T>內容的系統日誌,
並未真的異動到資料庫

已經到達commit point的資料,因為非毀滅性故障而不確定
有沒有真的異動到DB時,則要做失敗復原的REDO。

(三)
系統日誌要寫回磁碟需要
1. 分配給系統日誌的主記憶體區塊(Block)滿了
2. 到達檢查點了

而系統日誌強迫寫入是因為情況1. 不是情況2.
如果系統日誌強迫寫入時,主記憶體的系統日誌未到達commit
則被稱為"交易委任前的系統日誌強制寫入"

(四)
只有當含有<commit,T>內容的系統日誌寫回磁碟,
才表示交易T已經到達Commit point



祝大家金榜題名

--

All Comments

Kelly avatarKelly2015-04-16
系統日誌有一小塊稱主記憶體 其他都是系統日誌本身
commit會把交易記錄寫道系統日誌 但未真正更新到DB內
Jessica avatarJessica2015-04-20
而要真正影像到DB 必須是 系統日誌滿 or check point
Jessica avatarJessica2015-04-21
但是一筆交易commit 代表他永遠有效 若還在系統日誌
時候發生當機 那就要從事redo 還是要看是延遲還是立即
Selena avatarSelena2015-04-22
第二點含有commit就不會再主記憶體了 會在系統日誌
Susan avatarSusan2015-04-23
你可以把他看成 主記憶體---系統日誌----資料庫
Margaret avatarMargaret2015-04-25
這樣會比較容易理解
Gary avatarGary2015-04-27
何不直接線上學習?http://goo.gl/E6BCpS
Elvira avatarElvira2015-04-27
所以<commit, T>只會存在系統日誌內?