在歸檔模式下,Oracle將已經寫滿的記錄檔複製到指定的地方,這個過程叫歸檔,複製下來的記錄檔叫歸檔日誌。
一、設定資料庫為歸檔模式
通過archive log list查詢資料庫記錄模式
SQL> archive log list;
資料庫記錄模式 非存檔模式
自動封存 禁用
存檔終點 USE_DB_RECOVERY_FILE_DEST
最早的聯機日誌序列 17
當前日誌序列 19
當前為非歸檔模式,修改為歸檔模式方法:ALTER DATABASE ARCHIVELOG;
樣本:
1. 關閉資料庫
SQL> shutdown immediate;
資料庫已經關閉。
已經卸載資料庫。
ORACLE 常式已經關閉。
2. 啟動資料庫,不開啟
SQL> startup mount;
ORACLE 常式已經啟動。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 255855492 bytes
Database Buffers 348127232 bytes
Redo Buffers 7135232 bytes
資料庫裝載完畢。
3. 修改資料庫模式
SQL> alter database archivelog;
資料庫已更改。
4. 開啟資料庫
SQL> alter database archivelog;
資料庫已更改。
再查詢資料庫歸檔模式,已經變為歸檔模式了。
SQL> archive log list;
資料庫記錄模式 存檔模式
自動封存 啟用
存檔終點 USE_DB_RECOVERY_FILE_DEST
最早的聯機日誌序列 17
下一個存檔日誌序列 19
當前日誌序列 19
二、設定歸檔目標
歸檔日誌存放路徑 DB_RECOVERY_FILE_DEST
SQL> show parameter db_recovery_file
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string D:\oracle\product\10.2.0/flash
_recovery_area
db_recovery_file_dest_size big integer 2G
可以通過設定參數LOG_ARCHIVE_DEST_n設定其他歸檔目標,n為1~10,Oracle將記錄檔以相同的方式歸檔到每一個歸檔目標中。
SQL> show parameter log_archive_dest
NAME TYPE VALUE
------------------------------------ ----------- -----------------------------
log_archive_dest string
log_archive_dest_1 string
log_archive_dest_10 string
log_archive_dest_2 string
log_archive_dest_3 string
log_archive_dest_4 string
log_archive_dest_5 string
log_archive_dest_6 string
log_archive_dest_7 string
log_archive_dest_8 string
log_archive_dest_9 string
設定其他歸檔目標:
SQL> alter system set log_archive_dest_1='location=d:\oracle\myarchive';
系統已更改。
三、歸檔的追蹤層級
設定參數log_archive_trace,預設是0,即不在追蹤檔案中記錄歸檔的任何資訊。追蹤層級是0, 1,2,4,8,16,32,64,各個層級對應的歸檔內容這裡不詳述。可以進行疊加,將多個層級對應的值疊加作為trace參數的值。
SQL> show parameter log_archive_trace
NAME TYPE VALUE
------------------------------------ ----------- --------------------
log_archive_trace integer 0
SQL> alter system set log_archive_trace=17;
系統已更改。
四、查詢歸檔日誌
1. v$database
查詢資料庫是否屬于歸檔模式, 除了archive log list外,可以查詢v$database
SQL> select log_mode from v$database;
LOG_MODE
------------
ARCHIVELOG
2. v$archived_log
3. v$archived_dest
4. v$archive_processes
5. v$backup_redolog
6. v$log