Oracle可以將聯機記錄檔儲存到多個不同的位置,將聯機日誌轉換為歸檔日誌的過程稱之為歸檔。相應的日誌被稱為歸檔日誌。
一、歸檔日誌
是聯機重做日誌組檔案的一個副本
包含redo記錄以及一個唯一的log sequence number
對日誌組中的一個記錄檔進行歸檔,如果該組其中一個損壞,則另一個可用的日誌將會被歸檔
對于歸檔模式的日誌切換,當日誌歸檔完成後,下一個日誌才能被覆蓋或重新使用
自動歸檔功能如開啟,則後台進程arcn在日誌切換時自動完成歸檔,否則需要手動歸檔
歸檔日誌用途
恢複資料庫
更新standby資料庫
使用LogMiner 提取曆史日誌的相關資訊
二、日誌的兩種模式
1.非歸檔模式
不適用與生產資料庫
建立資料庫時,預設的日誌管理員模式為非歸檔模式
當日誌切換,檢查點產生後,聯機重做記錄檔即可被重新使用
聯機日誌被覆蓋後,介質恢複僅僅支援到最近的完整備份
不支援聯機備份資料表空間,一個資料表空間損壞將導致整個資料庫不可用,需要刪除掉損壞的資料表空間或從備份恢複
對於作業系統層級的Database Backup需要將資料庫一致性關閉
應當備份所有的資料檔案、控制檔案(單個)、參數檔案、密碼檔案、聯機記錄檔(可選)
2.歸檔模式
能夠對聯機記錄檔進行歸檔,生產資料庫強烈建議歸檔
在日誌切換時,下一個即將被寫入日誌組必須歸檔完成之後,日誌組才可以使用
歸檔日誌的Log sequence number資訊會記錄到控制檔案之中
必須有足夠的磁碟空間用於存放歸檔日誌
Oracle 9i 需要設定參數log_archive_start=true 才能夠進行自動歸檔
備份與恢複
支援熱備份,且當某個非系統資料表空間損壞,資料庫仍然處於可用狀態,且支援線上恢複
本欄目更多精彩內容:http://www.bianceng.cn/database/Oracle/
使用歸檔日誌能夠實現聯機或離線時間點復原(即可以恢複到指定的時間點、指定的歸檔日誌或指定的SCN)
三、兩種模式的切換設定及手動歸檔
1.非歸檔到歸檔模式
a.一致性關閉資料庫(shutdown [immediate | transactional |normal])
b.啟動到mount階段(startup mount)
c.切換到歸檔模式(alter database archivelog [manual])
d.切換到open階段(alter database open)
e.對資料做一個完整備份(full backup)
--示範非歸檔到歸檔模式
SQL> ARCHIVE LOG LIST --查看資料庫是否處于歸檔模式
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 14
Current log sequence 16
SQL> SELECT log_mode FROM v$database; --查看資料庫是否處于歸檔模式
LOG_MODE
------------
NOARCHIVELOG
SQL> SHUTDOWN IMMEDIATE; --一致性關閉資料庫
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> STARTUP MOUNT; --啟動到mount狀態
ORACLE instance started.
Total System Global Area 251658240 bytes
Fixed Size 1218796 bytes
Variable Size 75499284 bytes
Database Buffers 171966464 bytes
Redo Buffers 2973696 bytes
Database mounted.
SQL> ALTER DATABASE ARCHIVELOG; --切換到自動歸檔模式
Database altered.
SQL> ALTER DATABASE OPEN; --切換到open狀態
Database altered.
SQL> ARCHIVE LOG LIST; --查看資料庫的歸檔狀態
Database log mode Archive Mode --已置為歸檔模式
Automatic archival Enabled --對日誌進行自動歸檔
Archive destination USE_DB_RECOVERY_FILE_DEST