首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

RMAN 歸檔日誌獨立備份與 Crosscheck 交叉驗證實務

     編輯:Oracle 資料庫相關知識

手動備份歸檔日誌腳本範例

單節點環境

RUN {
  ALLOCATE CHANNEL t1 TYPE 'SBT_TAPE'
    PARMS 'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)';
  BACKUP FILESPERSET 10
    (ARCHIVELOG ALL SKIP INACCESSIBLE DELETE INPUT FORMAT '/arch_%s_%p/');
  RELEASE CHANNEL t1;
}

RAC 環境 (雙通道)

RUN {
  ALLOCATE CHANNEL t1 TYPE 'SBT_TAPE' PARMS '...' CONNECT 'backup/bk1949coal@PROD1';
  ALLOCATE CHANNEL t2 TYPE 'SBT_TAPE' PARMS '...' CONNECT 'backup/bk1949coal@PROD2';
  BACKUP FILESPERSET 10
    (ARCHIVELOG ALL SKIP INACCESSIBLE DELETE INPUT FORMAT '/arch_%s_%p/');
  RELEASE CHANNEL t1; RELEASE CHANNEL t2;
}

關鍵問題:漏備舊歸檔

每次手動備份皆從「最近的歸檔」開始,若先前有歸檔未備份成功(如磁帶故障、網路中斷),後續執行不會自動補備,導致永久漏備。

解決方案:Crosscheck 交叉驗證

CROSSCHECK ARCHIVELOG ALL;
CROSSCHECK BACKUPSET;
  • 比對控制檔/目錄與實際備份件狀態,標記遺失件為 EXPIRED。
  • 搭配 DELETE EXPIRED ARCHIVELOG ALL 清理控制檔記錄。
  • 再執行 BACKUP ARCHIVELOG ALL 即可補備漏掉的舊歸檔。

常用查詢指令

LIST BACKUP OF ARCHIVELOG ALL;
LIST BACKUP OF ARCHIVELOG FROM SEQUENCE 8116 THREAD 2;

輸出包含 BS Key、BP Key、Status、Handle (媒體位置)、Thrd/Seq、Low/Next SCN/Time 等關鍵資訊,便於追蹤特定歸檔是否已備份。

建議排程策略

  1. 每日固定時段執行 CROSSCHECK + DELETE EXPIRED。
  2. 緊接著執行 BACKUP ARCHIVELOG ALL NOT BACKED UP 1 TIMES 確保至少有一份備份。
  3. 保留策略:CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 2 TIMES TO DEVICE TYPE SBT;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved