ORACLE DATAGUARD的主備庫同步,主要是依靠日誌傳輸到備庫,備庫應用日誌或歸檔來實現。當主、備庫間日誌傳輸出現GAP,備庫將不再與主庫同步。因此需對日誌傳輸狀態進行監控,確保主、備庫間日誌沒有GAP,或發現GAP後及時處理。除了在告警日誌中查看日誌同步情況外,還可以通過查看相關視圖來對日 ...
ORACLE DATAGUARD的主備庫同步,主要是依靠日誌傳輸到備庫,備庫應用日誌或歸檔來實現。當主、備庫間日誌傳輸出現GAP,備庫將不再與主庫同步。因此需對日誌傳輸狀態進行監控,確保主、備庫間日誌沒有GAP,或發現GAP後及時處理。除了在告警日誌中查看日誌同步情況外,還可以通過查看相關視圖來對日誌傳輸狀態進行監控。
1、主、備庫查看當前日誌狀況
SELECT SEQUENCE#,STATUS FROM V$LOG;
2、備庫查看RFS接收日誌和MRP應用日誌同步主庫情況
SELECT PROCESS, SEQUENCE#, STATUS, DELAY_MINS FROM V$MANAGED_STANDBY;
3、察看備庫是否和主庫同步
SELECT SEQUENCE#,STATUS FROM V$LOG;
SELECT ARCHIVED_THREAD#,ARCHIVED_SEQ#,APPLIED_THREAD#,APPLIED_SEQ# FROM V$ARCHIVE_DEST_STATUS;
4、備庫查看已經歸檔的REDO
SELECT REGISTRAR,CREATOR,THREAD#,APPLIED,SEQUENCE#,FIRST_CHANGE#,NEXT_CHANGE#, COMPLETION_TIME FROM V$ARCHIVED_LOG;
5、備庫查看已經應用的REDO
SELECT THREAD#,SEQUENCE#,FIRST_CHANGE#,NEXT_CHANGE# FROM V$LOG_HISTORY;
6、主、備庫查看是否有GAP
SELECT STATUS,GAP_STATUS FROM V$ARCHIVE_DEST_STATUS WHERE DEST_ID=2;
備庫查看
SELECT * FROM V$ARCHIVE_GAP;
主備庫查詢異常信息
SELECT T.STATUS,T.ERROR FROM V$ARCHIVE_DEST T;
【實驗總結】
通過上面這6種方法,都可以對主備庫間日誌傳輸情況進行監控。
如果日誌傳輸出現代溝(GAP),就需要及時排查問題,必要時還可以採取手工處理GAP措施。
針對6
在主庫中查詢缺失的日誌的所在路徑和名稱
SELECT NAME FROM V$ARCHIVED_LOG WHERE THREAD#=1 AND DEST_ID=1 AND SEQUENCE# BETWEEN 99 AND 109;
拷貝到備庫的相應目錄
oracle@p1a:/home/oracle/arch>scp orcl_53716_710350416.log ss1:/home/oracle/archive_gap/
手工註冊日誌文件。
SQL> ALTER DATABASE REGISTER LOGFILE '/home/oracle/archive_gap/orcl_53415_710350416.log';
Database altered.
再次查看
SQL> select * from v$archive_gap;