Oracle redo 和undo

來源:互聯網
上載者:User

事務提交前要做的事情

Oracle提交一個事務之前,必須做以下幾件事情:

①記住資料被修改前是什麼樣子的

②記住資料即將要被改成什麼樣子

③記住redo log和undo log的關聯

④將SGA中已讀取到記憶體的資料修改為新的值(此時並未真正儲存到資料檔案)

其中第一步是通過在undo資料表空間中記錄undo日誌來完成的。第二步、第三步是通過向SGA中的redo日誌緩衝區寫記錄來完成的。這樣當交易回復時就可以從redo日誌找到對應的undo日誌,從而找回之前的資料

★要特別注意的是:此時不一定會觸發DBWn進程。

★要特別注意的另一個地方是:第2步記錄事務操作的改變是記憶體中進行的,還未寫到磁碟上的redo記錄檔

事務提交時所做的事情

①記錄SCN值(System Change Number)

②將線上重做日誌記錄(位於SGA的redo日誌緩衝區中)持久化到 redo記錄檔

③Oracle釋放資源和鎖

④Oracle將事務標記為已結束

注意:只有在commit指令被發出後,才會將SGA中重做日誌緩衝區的內容重新整理到磁碟的redo記錄檔。在LGWR進程執行前,重做日誌一直存在於記憶體中,也被稱為線上重做日誌。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.