首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 歸檔模式完整配置指南:從啟用到動態調整與 Hang 故障應急處理

     編輯:Oracle 資料庫基礎

一、啟用歸檔模式標準流程

  1. ARCHIVE LOG LIST; 確認當前模式。
  2. SHUTDOWN IMMEDIATE; 關閉庫並冷備份。
  3. 修改 init.ora / SPFILE 參數:
log_archive_start = true
log_archive_dest_1 = 'location=/u01/oradata/arch1'
log_archive_dest_2 = 'location=/u01/oradata/arch2'
log_archive_format = 'arc%t_%s.arc'
  1. STARTUP MOUNT;
  2. ALTER DATABASE ARCHIVELOG;
  3. ARCHIVE LOG LIST; 驗證模式與路徑。
  4. ARCHIVE LOG START; (若參數已設可省略)
  5. ALTER DATABASE OPEN;
  6. ALTER SYSTEM SWITCH LOGFILE; 多次切換驗證歸檔文件生成。

二、參數組說明

  • log_archive_dest / log_archive_duplex_dest:舊組,最多雙份。
  • log_archive_dest_1 ~ _5 (8i) / _1 ~ _10 (9i+):新組,支持更多鏡像,**兩組互斥**。

三、動態修改歸檔路徑實測 (8.1.7 / Win2000)

  1. ALTER SYSTEM SET log_archive_dest_2='location=...'; 修改**已在參數文件定義過**的目標即時生效,切換日志驗證新路徑收到歸檔。
  2. 未在參數文件定義的目標 (如 dest_2 首次動態添加) 雖修改成功,**切換日志不產生歸檔文件**。
  3. 重啟實例後,動態修改失效,回退至參數文件定義 (8i 無 SCOPE=BOTH 支持)。

四、歸檔模式下「自動歸檔未啟用」導致 Hang 的應急處理

現象

日志切換卡住,無「System altered.」提示,光標閃爍。LGWR 等待歸檔完成無法覆蓋重做日志。

方案 A:另開會話啟用自動歸檔

CONN / AS SYSDBA;
ARCHIVE LOG START;
-- 原會話瞬間恢復切換

方案 B:手工歸檔卡住的日志序列

  1. ARCHIVE LOG LIST; 確認 Current log sequence 與 Next log sequence to archive。
  2. 按順序歸檔:
    ALTER SYSTEM ARCHIVE LOG SEQUENCE 81; (最早未歸檔)
    ALTER SYSTEM ARCHIVE LOG SEQUENCE 82; (會自動帶上 81)
    切勿先歸檔當前日志 (報 ORA-00259)。
  3. 確認歸檔目錄文件生成,原會話恢復。
  4. **根治**:執行 ARCHIVE LOG START; 或參數文件加 log_archive_start=true。

五、最佳實踐清單

  • 生產庫**強制啟用歸檔模式 + 自動歸檔**。
  • 至少雙歸檔目錄 (本地 + 遠程/不同磁盤)。
  • 監控 V$ARCHIVED_LOG 確保無積壓。
  • 定期清理舊歸檔 (RMAN DELETE ARCHIVELOG 或腳本)。
  • 演練「手工歸檔」與「Hang 恢復」流程,納入運維手冊。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved