重做日誌(redo log)

2021-09-09 07:06:22 字數 1799 閱讀 4149

sql> select group#,sequence#,status from v$log;

group#  sequence# status
1	    4 current

2 2 inactive

3 3 inactive

database altered.

檢視日誌組中的成員

select group#,member from v$logfile;

group#
member

3
2
1
group#
member

3
當lgwr將乙個日誌組寫滿後,就切換到下乙個日誌組,直到將所有組寫滿,然後再會到第一組繼續寫入。

sql> select group#,sequence#,status from v$log;

group#  sequence# status
1	    4 current

2 2 inactive

3 3 inactive

檢視當前的情況和未來的走勢,此時當前使用的日誌組是1,說明改組是lgwr正在寫入的日誌,一旦寫滿,下乙個日誌將是第二組。可以通過』alter system switch logfile『命令可以讓lgwr立即切換至下一組寫入;

sql> alter system switch logfile;

system altered.

sql> select group#,status from v$log;

group# status
1 active

2 current

3 inactive

簡單來說,歸檔重做日誌就是聯機重做日誌的備份。在磁碟中給archivelog 劃分乙個空間,專門用來存放歸檔日誌檔案。

非歸檔模式(聯機重做),lgwr將所有能用的日誌檔案都使用過一遍後,他將轉向第乙個日誌組重新覆寫。就會把序號最小的日誌被新的日誌檔案覆蓋掉。

而歸檔模式(歸檔重做),是在覆蓋之前,有乙個歸檔程序arch將即將被覆蓋的日誌檔案中的「日誌資訊」讀取出來並且寫入到「歸檔日誌檔案」裡,

這個過程叫做歸檔過程。

在arch(歸檔程序)結束前 lgwr(日誌寫入)不能覆寫日誌檔案。

在企業裡重要的資料庫操作都是歸檔模式。

要產生歸檔日誌,資料庫必須是在歸檔模式中。

查詢資料庫的日誌模式:

select log_mode from v$database;

log_mode

archivelog

如何更改資料庫到歸檔模式下

先正常關閉資料庫 shutdown immediate

啟動資料庫到mount , startup mount

archive log list 檢視日誌模式,存放位置等

是非歸檔模式情況下 alter database archivelog;

alter database open ;

更改到非歸檔 命令 alter database noarchivelog;

參考至 包光磊《oracle 11g 資料庫恢復技術 》

mysql 日誌之redo log 重做日誌

redo log 具體來說,當有一條記錄需要更新的時候,innodb 引擎就會先把記錄寫到 redo log 檔案 裡面,並更新記憶體,這個時候更新就算完成了。同時,innodb 引擎會在適當的時候,將這個操作記錄更新到磁碟裡面,而這個更新往往是在系統比較空閒的時候做。mysql 裡經常說到的 wa...

MySQL 重做日誌 redo log 原理

redo log buffer redo log file 原理 目錄 1.重做日誌寫入過程圖 2.相關知識點彙總圖 3.redo log buffer 原理 4.redo log file 原理 1.重做日誌寫入過程 3.redo log buffer 原理 重做日誌緩衝 redo log buf...

聯機重做日誌

兩點 1.利用重做日誌檔案,在資料庫發生故障時,可以重新處理事務。維護一致性 2.記錄資料所做的所有更改,提供恢復機制,可以劃分成組,至少需要兩個組,每個組至少乙個成員。規劃原則 分散放開到不同的磁碟,日誌所在盤io要足夠,io讀寫要快。分散到不同的磁碟的好處,解決io的衝突,解決因故障,日誌不可用...