以下易容翻譯自Oracle dba官方文檔,不足之處還望指出。
管理重做記錄檔
學習目標:
1.解釋重做記錄檔的目的
2.描述重做記錄檔的結構
3.學會控制日誌切換與檢查點
4.多元化管理重做記錄檔
5.使用OMF管理重做記錄檔
1.概念介紹:
重做記錄檔通過記錄資料的所有改變情況對系統或介質故障提供恢複機制。
1)重做記錄檔以組的形式存在
2)一個oracle資料庫至少需要兩組,每組至少有一檔案
3)在一組裡的每一重做記錄檔叫做成員
The redo log files are used only for recovery.
2.重做記錄檔結構:
1)重做記錄檔組
a.一組相同的副本聯機重做記錄檔被稱為一個聯機重做日誌組。
b.LGWR進程並發的往日誌組裡所有重做記錄檔寫入相同資訊
2)重做記錄檔
a.一個組每個成員用於同一log sequence numbers和相同的大小
b.每次oracle伺服器開始寫入日誌組時分配記錄序號來唯一標識每個重做記錄檔
c.當前的記錄序號儲存在控制檔案和所有資料檔案的頭部
3.重做日誌如何工作?
1)重做日誌以迴圈的方式使用
2)當一個重做記錄檔寫滿,LGWR進程將移動到下一日誌組
a.這一步驟叫做log switch
b.checkpoint在此時發生
c.資訊被寫入控制檔案中
3)以下情況將觸發LGWR進程寫操作:
a.當commit事務發生
b.當redo log buffer儲存達到1/3
c.當重做日誌緩衝區有超過一個MB的更改記錄
d.在DBWn將buffer cache修改過的資料區塊的資訊寫入到資料檔案之前
4) 以下情況發生check point:
a.每次日誌切換時
b.執行個體通過normal,transactional,immediate選項關閉時
c.通過設定初始化參數FAST_START_MTTR_TARGET強制發生
d.資料庫管理員手工設定ALTER SYSTEM CHECKPOINT、alter tablespace ,datafile offline
e.使用alter tablespace[OFFLINE NORMAL|READ ONLY|BEGIN BACKUP] 語句導致指定資料檔案發生檢查點
註:如果參數LOG_CHECKPOINTS_TO_ALERT 設定為true,則每次檢查點資訊將記錄在alert_SID.log檔案中.
4.如何增加、刪除重做記錄檔(組)?
a.增加重做記錄檔組:
ALTER DATABASE ADD LOGFILE GROUP 3 ('$HOME/ORADATA/u01/log3a.rdo',
'$HOME/ORADATA/u02/log3b.rdo') SIZE 1M;
b.增加重做記錄檔:
ALTER DATABASE ADD LOGFILE MEMBER
'$HOME/ORADATA/u04/log1c.rdo' TO GROUP 1,
'$HOME/ORADATA/u04/log2c.rdo' TO GROUP 2,
'$HOME/ORADATA/u04/log3c.rdo' TO GROUP 3;
c.刪除重做記錄檔組:
ALTER DATABASE DROP LOGFILE GROUP 3;
d.刪除重做記錄檔:
ALTER DATABASE DROP LOGFILE MEMBER '$HOME/ORADATA/u04/log3c.rdo';
5.清理,重新分配或重新命名重做記錄檔?
a.清理重做記錄檔
ALTER DATABASE CLEAR LOGFILE '$HOME/ORADATA/u01/log2a.rdo';
b.重新分配或重新命名重做記錄檔
通過刪除舊記錄檔,新增新記錄檔實現。
6.如何擷取oracle資料庫日誌組和成員資訊?
△V$LOG
△V$LOGFILE
從控制檔案擷取重做記錄檔資訊:
SELECT group#, sequence#, bytes, members, status
FROM v$log;
7.詳細語句見下方: