1. 程式人生 > >DataGuard 之物理STANDBY 的監控與管理

DataGuard 之物理STANDBY 的監控與管理

1、監控恢復進度
1.1、檢視程序的活動狀態

SELECT PROCESS,CLIENT_PROCESS,SEQUENCE#,STATUS FROM V$MANAGED_STANDBY;

PROCESS   CLIENT_P  SEQUENCE# STATUS
--------- -------- ---------- ------------
ARCH      ARCH              0 CONNECTED
ARCH      ARCH              0 CONNECTED

Elapsed: 00:00:00.02

CLIENT_PROCESS 對應 Primary 資料庫中的程序如 ARCH\LGWR等
SEQUENCE#:歸檔序號
STATUS 當前程序狀態:
   CONNECTED :已連線至 PRIMARY 資料庫
   ALLOCATED: 正在準備連線PRIMARY資料庫
   ATTACHED:正在連線PRIMARY資料庫
   IDLE:空閒中
   RECEIVING:正在接收歸檔檔案
   OPENNING :正在處理歸檔檔案
   CLOSING: 歸檔檔案已處理完,收尾中
   WRITING: 正在向歸檔檔案中寫入redo資料
   WAIT_FOR_LOG :正在等待新的REDO資料
   WAIT_FOR_GAP:歸檔發生中斷,正在等待新的REDO 資料
   APPLYING_LOG:正在應用REDO資料

1.2 檢視REDO應用進度
SELECT DEST_NAME,ARCHIVED_THREAD#,ARCHIVED_SEQ#,APPLIED_THREAD#,APPLIED_SEQ#,DB_UNIQUE_NAME,STATUS FROM V$ARCHIVE_DEST_STATUS 
 --WHERE STATUS='VALID'

DEST_NAME                 ARCHIVED_THREAD# ARCHIVED_SEQ# APPLIED_THREAD# APPLIED_SEQ# DB_UNIQUE_NAME                 STATUS
------------------------- ---------------- ------------- --------------- ------------ ------------------------------ ---------
LOG_ARCHIVE_DEST_1                       0             0               0            0 cuuo                           VALID
LOG_ARCHIVE_DEST_2                       0             0               0            0 cuug                           VALID
LOG_ARCHIVE_DEST_3                       0             0               0            0 NONE                           INACTIVE
LOG_ARCHIVE_DEST_4                       0             0               0            0 NONE                           INACTIVE
LOG_ARCHIVE_DEST_5                       0             0               0            0 NONE                           INACTIVE
LOG_ARCHIVE_DEST_6                       0             0               0            0 NONE                           INACTIVE
LOG_ARCHIVE_DEST_7                       0             0               0            0 NONE                           INACTIVE
LOG_ARCHIVE_DEST_8                       0             0               0            0 NONE                           INACTIVE
LOG_ARCHIVE_DEST_9                       0             0               0            0 NONE                           INACTIVE
LOG_ARCHIVE_DEST_10                      0             0               0            0 NONE                           INACTIVE
STANDBY_ARCHIVE_DEST                     0             0               0            0 NONE                           VALID

11 rows selected.

1.3 檢視歸檔檔案的路徑及建立資訊
15:24:30 > SELECT NAME,CREATOR,THREAD#,SEQUENCE#,APPLIED,ARCHIVED,COMPLETION_TIME FROM V$ARCHIVED_LOG;

NAME                                     CREATOR    THREAD#  SEQUENCE# APP ARC COMPLETIO
---------------------------------------- ------- ---------- ---------- --- --- ---------
/u01/app/oracle/oradata/cuuo/arch1_91_78 ARCH             1         91 YES YES 04-JUL-12
7689201.dbf

/u01/app/oracle/oradata/cuuo/arch1_92_78 LGWR             1         92 YES YES 04-JUL-12
7689201.dbf

/u01/app/oracle/oradata/cuuo/arch1_93_78 LGWR             1         93 YES YES 04-JUL-12
7689201.dbf

/u01/app/oracle/oradata/cuuo/arch1_94_78 LGWR             1         94 YES YES 04-JUL-12
7689201.dbf

1.4 檢視歸檔歷史
SELECT FIRST_TIME,FIRST_CHANGE#,NEXT_CHANGE#,SEQUENCE# FROM V$LOG_HISTORY;

1.5 檢視物理STANDBY資料庫未接收的日誌檔案
SELECT LOCAL.THREAD#,LOCAL.SEQUENCE# FROM
   (SELECT THREAD#,SEQUENCE# FROM V$ARCHIVED_LOG WHERE DEST_ID=1) LOCAL
    WHERE LOCAL.SEQUENCE# NOT IN
 (SELECT SEQUENCE# FROM V$ARCHIVED_LOG WHERE DEST_ID=2 AND THREAD# = LOCAL.THREAD#);
----從primary 資料庫獲取


2 監控日誌應用服務
2.1 查詢當前資料的基本資訊(V$DATABASE) 資料庫角色、保護模式、保護級別
SELECT DATABASE_ROLE,DB_UNIQUE_NAME,OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS FROM V$DATABASE;

查詢failover後快速啟動的資訊:
SELECT FS_FAILOVER_STATUS,FS_FAILOVER_CURRENT_TARGET,FS_FAILOVER_THRESHOLD,FS_FAILOVER_OBSERVER_PRESENT FROM V$DATABASE;

2.2 查詢REDO應用和REDO傳輸服務的活動狀態
SELECT PROCESS,STATUS,THREAD#,SEQUENCE#,BLOCK#,BLOCKS FROM V$MANAGED_STANDBY;

2.3 檢視REDO應用模式(物理STANDBY資料庫)
SELECT RECOVERY_MODE FROM V$ARCHIVE_DEST_STATUS WHERE DEST_ID=2;
RECOVERY_MODE
-----------------------
MANAGED

-----如果開啟了實時應用,此處顯示的狀態應該為 MANAGED REAL TIME APPLY

2.4 DATAGUARD 事件監控
2.4.1 ALERT LOG
2.4.2 查詢 V$DATAGUARD_STATUS 檢視
16:03:17 > SELECT SEVERITY,DEST_ID,MESSAGE_NUM,ERROR_CODE,CALLOUT,MESSAGE FROM V$DATAGUARD_STATUS;

SEVERITY         DEST_ID MESSAGE_NUM ERROR_CODE CAL MESSAGE
------------- ---------- ----------- ---------- --- ----------------------------------------
Informational          0           1          0 NO  ARC0: Archival started
Informational          0           2          0 NO  ARC1: Archival started
Informational          0           3          0 NO  ARC0: Becoming the 'no FAL' ARCH
Informational          0           4          0 NO  ARC0: Becoming the 'no SRL' ARCH
Informational          0           5          0 NO  ARC1: Becoming the heartbeat ARCH
Control                0           6          0 YES Media Recovery Start: Managed Standby Re
                                                    covery

Informational          0           7          0 NO  Managed Standby Recovery not using Real
                                                    Time Apply

3.調整物理STANDBY端REDO資料應用頻率
3.1設定RECOVER並行度
在介質恢復或REDO應用期間都需要讀取redo log ,預設都是序列恢復,
可以在RECOVER的時候加上PARALLEL子句來指定並行度。
RECOVER STANDBY DATABASE PARALLEL 2;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE PARALLEL 2 DISCONNECT FROM SESSION;

3.2 加快REDO 應用頻率
修改 DB_BLOCK_CHECKING=FALSE 能夠提高2倍的應用效率,設定為FALSE只適合物理STANDBY資料庫,不適合primary資料庫。

3.3 設定 parallel_execution_message_size 
如果打開了並行恢復,適當加大parallel_execution_message_size大小也可以提升效能,不過需要注意的事
增加該引數會佔用更多的記憶體。

3.3 優化磁碟I/O
恢復期間最大的效能瓶頸是I/O讀寫,某些情況下將 DISK_ASYNCH_IO設定為TRUE 即使用本地非同步I/O能夠降低並行讀取的次數,加快整個恢復時間。

轉載請註明出處及原文連結:

http://blog.csdn.net/xiangsir/article/details/8570386