Oracle 資料庫的歸檔模式是實現數據恢復與高可用性的關鍵機制。啟用歸檔模式後,資料庫會自動將已填滿的重做日誌組封存為歸檔日誌,為時間點恢復與 Data Guard 等容災方案提供基礎。本文系統整理從啟用模式、參數查看、日誌切換到路徑調整的完整操作流程,供 DBA 日常運維參考。
資料庫必須處於 Mount 狀態才能切換歸檔模式,操作步驟如下:
-- 1. 查看當前歸檔狀態 SQL> archive log list; -- 2. 關閉資料庫並掛載 SQL> shutdown immediate; SQL> startup mount; -- 3. 啟用歸檔模式 SQL> alter database archivelog; -- 4. 開啟資料庫 SQL> alter database open; -- 5. 再次確認 SQL> archive log list;
使用 show parameter recovery 可一次檢視 log_archive_dest_n、log_archive_format、db_recovery_file_dest 等關鍵參數,快速掌握歸檔存放位置與命名規則。
查詢 v$log 視圖可獲取每組的序號、狀態、大小及是否已歸檔:
SQL> select group#, status, bytes, archived from v$log;
執行 alter system switch logfile; 可強制切換當前重做日誌組,促使 ARCH 進程將其歸檔。切換後再次查詢 v$log,原 Current 組的 archived 欄位將變為 YES。
alter system set log_archive_dest_1='location=/data/archivelog' scope=spfile;(需重啟生效)alter system set db_recovery_file_dest_size=20g;若業務不再需要時間點恢復,可依反向步驟關閉:
SQL> shutdown immediate; SQL> startup mount; SQL> alter database noarchivelog; SQL> alter database open;
提醒:關閉歸檔模式將導致無法執行不完整恢復,請務必評估業務 RPO 需求後再決定。