dataguard 由於主庫引數未配置歸檔刪除策略導致庫歸檔丟失ORA-16016

shawnloong發表於2017-11-23
dataguard 由於主庫引數未配置歸檔刪除策略導致庫歸檔丟失
今天巡檢庫時候發現備庫未啟動,監控agent也被人關閉了,手動啟動
按照日誌慣例開啟備庫(read_only),但是在open的過程中顯示以下錯誤

點選(此處)摺疊或開啟

  1. Standby crash recovery failed to bring standby database to a consistent
  2. point because needed redo hasn't arrived yet.
  3. MRP: Wait timeout: thread 1 sequence# 173
  4. Standby Crash Recovery aborted due to error 16016.
  5. Errors in file /u01/app/oracle/diag/rdbms/orcl_st1/orcl/trace/orcl_ora_29639.trc:
  6. ORA-16016: archived log for thread 1 sequence# 173 unavailable
  7. Recovery interrupted!
  8. Some recovered datafiles maybe left media fuzzy
  9. Media recovery may continue but open resetlogs may fail
  10. Completed Standby Crash Recovery.
  11. Errors in file /u01/app/oracle/diag/rdbms/orcl_st1/orcl/trace/orcl_ora_29639.trc:
  12. ORA-10458: standby database requires recovery
  13. ORA-01196: file 1 is inconsistent due to a failed media recovery session
  14. ORA-01110: data file 1: '/u01/app/oracle/oradata/orcl/system01.dbf'
  15. ORA-10458 signalled during: alter database open...


但是手動應用歸檔顯示已經應用完成,後臺查日誌備庫應用到sequence 173而主庫已經應用到214,檢視歸檔目錄下,發現歸檔已經丟失了,由於備機關機未啟動導致歸檔未傳送過來.
我們在主庫中恢復歸檔

點選(此處)摺疊或開啟

  1. rman target /
  2. restore archivelog from sequence 173


將恢復出來的日誌複製到備庫
手動註冊丟失的歸檔,這裡我用指令碼批次處理的;

點選(此處)摺疊或開啟

  1. for i in `seq 173 214`;do echo "ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_"$i"_956999399.dbf;'";done
173-214為丟失歸檔的範圍

點選(此處)摺疊或開啟

  1. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_173_956999399.dbf';
  2. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_174_956999399.dbf';
  3. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_175_956999399.dbf';
  4. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_176_956999399.dbf';
  5. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_177_956999399.dbf';
  6. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_178_956999399.dbf';
  7. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_179_956999399.dbf';
  8. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_180_956999399.dbf';
  9. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_181_956999399.dbf';
  10. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_182_956999399.dbf';
  11. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_183_956999399.dbf';
  12. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_184_956999399.dbf';
  13. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_185_956999399.dbf';
  14. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_186_956999399.dbf';
  15. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_187_956999399.dbf';
  16. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_188_956999399.dbf';
  17. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_189_956999399.dbf';
  18. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_190_956999399.dbf';
  19. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_191_956999399.dbf';
  20. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_192_956999399.dbf';
  21. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_193_956999399.dbf';
  22. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_194_956999399.dbf';
  23. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_195_956999399.dbf';
  24. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_196_956999399.dbf';
  25. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_197_956999399.dbf';
  26. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_198_956999399.dbf';
  27. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_199_956999399.dbf';
  28. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_200_956999399.dbf';
  29. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_201_956999399.dbf';
  30. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_202_956999399.dbf';
  31. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_203_956999399.dbf';
  32. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_204_956999399.dbf';
  33. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_205_956999399.dbf';
  34. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_206_956999399.dbf';
  35. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_207_956999399.dbf';
  36. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_208_956999399.dbf';
  37. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_209_956999399.dbf';
  38. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_210_956999399.dbf';
  39. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_211_956999399.dbf';
  40. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_212_956999399.dbf';
  41. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_213_956999399.dbf';
  42. ALTER DATABASE REGISTER LOGFILE '/u01/archive/1_214_956999399.dbf';

點選(此處)摺疊或開啟

  1. SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;


注:如果歸檔量比較多可以指定並行度

點選(此處)摺疊或開啟

  1. ALTER DATABASE RECOVER MANAGED STANDBY DATABASE PARALLEL 2 DISCONNECT FROM SESSION;
  2. ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
資料庫可正常open

點選(此處)摺疊或開啟

  1. SQL> ALTER DATABASE OPEN;
  2. SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
最後設定一下主庫歸檔刪除策略
主庫操作

點選(此處)摺疊或開啟

  1. rman target /
  2. CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON STANDBY;
如果出現以下錯誤

點選(此處)摺疊或開啟

  1. CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON STANDBY;
  2. new RMAN configuration parameters:
  3. CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON STANDBY;
  4. new RMAN configuration parameters are successfully stored
  5. RMAN-08591: WARNING: invalid archivelog deletion policy
需要修改修改資料庫引數,重啟庫,然後重新 設定歸檔刪除策略

點選(此處)摺疊或開啟

  1. SQL>alter system set "_log_deletion_policy"=ALL scope=spfile sid='*';

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24486203/viewspace-2147645/,如需轉載,請註明出處,否則將追究法律責任。

相關文章