DataGuard需要使用強制日誌的理由

hooca發表於2014-12-22
如果在Primary資料庫執行了無日誌操作,則DataGuard會發生如下錯誤:

點選(此處)摺疊或開啟

  1. ORA-01578: ORACLE data block corrupted (file # 10, block # 514)
  2. ORA-01110: data file 3: '+data/Matrix_DR0/datafile/users.278.56783987'
  3. ORA-26040: Data block was loaded using the NOLOGGING option
當產生此錯誤時,可按如下方式解決:

在Standby資料庫上,
1. 停止應用重做
點選(此處)摺疊或開啟
  1. ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
2. 對受影響的資料檔案,使其離線

點選(此處)摺疊或開啟

  1. ALTER DATABASE DATAFILE <name> OFFLINE DROP;
3. 重新開始應用重做資料

點選(此處)摺疊或開啟

  1. ALTER DATABASE RECOVER MANAGED STANDBY DATABASE [using current logfileDISCONNECT;
在Primary資料庫上:
4. 用RMAN備份受影響的資料檔案,並複製到Standby資料庫,替換受影響的檔案。
5. 停止應用重做資料,指令碼同(1)
6. 使之前離線的資料檔案重新線上:

點選(此處)摺疊或開啟

  1. ALTER DATABASE DATAFILE <NAME> ONLINE;
7. 重新應用重做資料,指令碼同(3)
無日誌操作能加快寫入速度,如果確有實際需求,考慮下列幾種不同的強制級別:
1)資料庫級別:

點選(此處)摺疊或開啟

  1. ALTER DATABASE FORCE LOGGING;
2) 表空間級別:

點選(此處)摺疊或開啟

  1. ALTER TABLESPACE <NAME> FORCE LOGGING;
注意:這會給切換和故障轉移帶來麻煩。

3)表級別:不推薦!


檢查是否有無日誌操作

在Primary資料庫上主動檢查:


點選(此處)摺疊或開啟

  1. SELECT NAME, UNRECOVERABLE_CHANGE#,
  2.      TO_CHAR(UNRECOVERABLE_TIME,'DD-MON-YYYY HH:MI:SS')
  3.      FROM V$DATAFILE;

NAME
--------------------------------------------------------------------------------
UNRECOVERABLE_CHANGE# TO_CHAR(UNRECOVERABLE_TIME,'DD-MON-YYYYHH:MI:SS')
--------------------- ----------------------------------------------------------
/oradata/shanghai/users01.dbf
                    0


/oradata/shanghai/soe01.dbf
              1170680 22-DEC-2014 01:39:28

上例中,soe01.dbf資料檔案有無日誌操作。

在Standby資料庫,可用dbv工具檢查資料檔案

點選(此處)摺疊或開啟

  1. dbv file=soe01.dbf
如果有無日誌操作,則顯示如下報錯:

點選(此處)摺疊或開啟

  1. DBV-00201: Block, DBA 223776, marked corrupt for invalid redo application

  2. DBV-00201: Block, DBA 223777, marked corrupt for invalid redo application

  3. DBV-00201: Block, DBA 223778, marked corrupt for invalid redo application

  4. DBV-00201: Block, DBA 223779, marked corrupt for invalid redo application




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

相關文章