Oracle重做日誌組狀態及切換解析

2021-08-19 15:07:34 字數 1578 閱讀 2071

oracle重做日誌(redo log)是用來記錄操作條目,用於資料庫資料恢復。為了提高效率,oracle通常建議設定三組redo log。本文將對重做日誌組的狀態以及多種狀態之間切換做解析,力求掌握該知識點。

oracle調整聯機重做日誌大小(change redo log size)

oracle 聯機重做日誌檔案(online log file)

oracle聯機重做日誌丟失的恢復 

oracle 聯機重做日誌檔案(online redo log file) 詳述 

oracle重做日誌檔案版本不一致問題處理 

【備份與恢復】恢復受損的復用聯機重做日誌檔案 

一.概述

oracle重做日誌組通常有四種狀態,即unused,inactive,active,current。

unused通常指從未被使用的日誌組,即新新增的日誌組。

current狀態為lgwr程序正把redo log buffer的日誌寫進日誌組中。

active為剛剛完成日誌切換後的狀態,此時該日誌組中提交的事務引起的資料改變還沒有完全從db buffer cache寫入到資料檔案中,因此該日誌組還不能被覆蓋,並且待完全寫入後變為inactive狀態。如果資料庫為歸檔模式,那麼是在該狀態下完成歸檔的。

inactive狀態的日誌可以被覆蓋,可以允許寫入日誌。如果是在歸檔模式下,那麼此階段證明歸檔已經完成。

二.實驗

本次實驗以開啟歸檔模式為例:

日誌組為三組,狀態分別為inactive,inactive,current。如圖:

手動歸檔後,觀察發現組1的狀態變為current,組3的狀態變為active,組2的狀態不變 。如下圖:

說明當前寫入的日誌組為組1,組3正在進行歸檔和進行必要的資料寫入至datafile。待這兩項工作完成後,再看如下圖:

說明組3已經完成了歸檔,可以允許下一次寫入了。在非歸檔模式下,組3的狀態也能變成inactive,說明完成了資料從db buffer cache寫入至db files。

三、總結

上述實驗很好的說明了oracle日誌組在整個生命週期所具有的狀態。當然沒有看到unused狀態,這種狀態是當日誌組剛新添到資料庫後的狀態,這種操作在生產環境中很少,所以本次實驗沒有看到這種狀態。

另外有人會認為在手動日誌切換時為什麼使用命令alter system archive log current。這裡也做乙個說明。

兩組命令最後的效果一樣。alter system switch logfile是不等歸檔完成就進行switch logfile操作,速度快,尤其在非歸檔模式下適用,對當前例項生效。而alter system archive log current要等待歸檔完成才操作,對所有例項生效。

oracle 重做日誌

5.日誌成員檔案的遷移 作用 資料 recovery恢復 特徵 sql select from v log sql select from v logfile sql select from v archived log 歸檔模式下檢視 thread 執行緒在單例項的環境下,thread 永遠是 1...

聯機重做日誌組

用clear命令重建該日誌檔案 sql alter database clear logfile group1 如果是該日誌組還沒有歸檔,則需要用 sql alter database clear unarchived logfile group1 4 開啟資料庫,重新備份資料庫 sql alter...

oracle 重做日誌檔案

1.查詢重做日誌檔案組的資訊 select group sequence members,status,archived from v log 2.查詢重做日誌檔案的資訊 select group type,member from v logfile order by group 3.為案例資料庫新...