数据库崩溃后对redo log的使用
生活随笔
收集整理的這篇文章主要介紹了
数据库崩溃后对redo log的使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
用戶對數據庫做的任何操作均會產生redo log,事實上是先把redo log寫到redo log cache中,再把實際數據更改寫至buffer cache中。
Redo log會在以下情況從redo log cache寫至online redo log file中:
l?每隔3秒鐘
l?Redo log cache使用了1/3
l?當數據庫定寫入器通知重做記錄需要寫入磁盤時。即在數據寫入數據文件前。
但若此時數據庫發生崩潰,而部分數據未寫至data file中,則:
(1)對于未提交事務,執行撤銷操作。(是否有可能未commit,但數據已經寫入data file。若yes,則有可能buffer cache滿了,下次讀取數據從data file讀取,導致未commit更改生效了。因此不可能yes。但若no,則有部分未提交數據一直占據buffer cache,若滿了怎么辦?)
(2)對于已提交事務,但數據未寫至data file的,根據redo log執行重做。
也就是說一切操作均產生redo log,不管是否commit。
總結
以上是生活随笔為你收集整理的数据库崩溃后对redo log的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL语句、PL/SQL语句、SQL*P
- 下一篇: 连接数据库时提示归档器失败 ORA-00