您好,登錄后才能下訂單哦!
Oracle重做日志(redo log)是用來記錄操作條目,用于數據庫數據恢復。為了提高效率,oracle通常建議設置三組redo log。
一.概述
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要等待歸檔完成才操作,對所有實例生效。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。