Oracle DG 出現 RFS[6]: No standby redo logfiles created for thread 1

東北胖子發表於2017-03-07

一、簡要介紹

    在生產環境中為一個Oracle資料庫增加DG節點,以只讀的方式開啟,採用實時同步的方式同步資料。資料的遷移沒有采用線上複製,主要的原因是資料量比較大,而是採用的RMAN恢復,一切進行的很順利,standby節點與主庫也可以進行資料同步,但是在日誌中發現這樣的資訊——RFS[6]: No standby redo logfiles created for thread 1 ,所以我判斷在同步的過程並沒有使用 standby redo logfile ,經查詢在恢復資料之前建立的4個 standby redo logifle都是 unassigned 狀態,正常的應該是有一個是 active狀態,經過查詢資料需要重新建立 standby redo logfile,重新建立後資料同步使用了 standby redo logfile檔案,下面是我的操作過程。

二、操作過程

 1、首先在 primary 節點停止第3個日誌傳輸位置
     

  1. SQL> alter system set log_archive_dest_state_3 = defer scope = memory;

 2、停止 standby 節點的資料同步

  1. SYS@ORCL> alter database recover managed standby database cancel;
  2. Database altered.

3、檢查 standby 節點中最大的日誌號是否與 primary節點一致

  1. select thread#,max(sequence#) from v$archived_log group by thread#;

4、刪除 standby 節點中的 4 個 standby redo logifle

  1. SYS@ORCL> ALTER DATABASE DROP STANDBY LOGFILE GROUP 4;
  2.                                                       
  3. Database altered.
  4.                                                       
  5. SYS@ORCL> ALTER DATABASE DROP STANDBY LOGFILE GROUP 5;
  6.                                                       
  7. Database altered.
  8.                                                       
  9. SYS@ORCL> ALTER DATABASE DROP STANDBY LOGFILE GROUP 6;
  10.                                                       
  11. Database altered.
  12.                                                       
  13. SYS@ORCL> ALTER DATABASE DROP STANDBY LOGFILE GROUP 7;
  14.                                                       
  15. Database altered.

5、檢查資料檔案目錄中的檔案是否刪除,如果沒有刪除則在作業系統中刪除。在刪除檔案時仔細檢查檔名,防止出現誤刪除。

6、在 standby 節點重新建立 standby redo logfile

  1. SYS@ORCL> alter database add standby logfile THREAD 1 group 4 ('/data/oracle_data/ORCL/REDO04.LOG') size 50m;
  2. Database altered.
  3. SYS@ORCL> alter database add standby logfile THREAD 1 group 5 ('/data/oracle_data/ORCL/REDO05.LOG') size 50m;
  4. Database altered.
  5. SYS@ORCL> alter database add standby logfile THREAD 1 group 6 ('/data/oracle_data/ORCL/REDO06.LOG') size 50m;
  6. Database altered.
  7. SYS@ORCL> alter database add standby logfile THREAD 1 group 7 ('/data/oracle_data/ORCL/REDO07.LOG') size 50m;
  8. Database altered.

7、開啟 primary 節點的 第 3 個日誌傳輸地址

  1. SQL> alter system set log_archive_dest_state_3 = enable scope = both;
  2. System altered.

8、開啟 standby 節點資料庫同步服務

  1. SYS@ORCL> alter database recover managed standby database using current logfile disconnect from session;
  2.                                                                                                         
  3. Database altered.

9、檢查 standby redo logifle狀態

  1. SQL> select GROUP#,BYTES/1024/1024/1024 , STATUS, FIRST_TIME,NEXT_TIME from v$standby_log;

如果有 standby redo logfile 的狀態是 active 那麼表示 standby redo logfile重新建立成功

10、檢查DG同步狀態

  1. select process,status,thread#,sequence#,block#,blocks from V$managed_standby order by 1,4;


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

相關文章