高可用性災難回復 (HADR) 監視

監視是設定和維護 HADR 設定不可或缺的一部分。 Db2® 監視介面提供環境配置及性能的詳細圖片。

您可以使用許多方法來監視 HADR 資料庫的狀態。 有兩種偏好的 HADR 監視方法:
  • db2pd 指令
  • MON_GET_HADR 表格函數
Db2 pureScale ® 環境中,只有這兩個介面會傳回 HADR 設定的相關資訊。
或者,您也可以使用下列方法:
  • GET SNAPSHOT FOR DATABASE 指令
  • db2GetSnapshot API
  • 其他受支援的 Snapshot 管理視圖及表格函數。 有一些已棄用或已停止提供的視圖及函數。
db2pd 指令

此指令會從 Db2 記憶體集擷取資訊。 您可以從主要資料庫或待命資料庫發出此指令。 如果您使用多個待命資料庫,並且從待命資料庫發出此指令,則它不會傳回其他待命資料庫的任何相關資訊。 如果您從主要資料庫發出此指令,則它會傳回所有待命資料庫的相關資訊

若要檢視資料庫 HADRDB 的高可用性災難回復相關資訊,您可以發出下列指令:
   db2pd -db HADRDB -hadr
假設您已從主要資料庫發出該指令,則您會收到與下列範例輸出類似的內容:
  Database Member 0 -- Database HADRDB -- Active -- Up 0 days 00:23:17 -- 
Date 06/08/2011 13:57:23

                              HADR_ROLE = PRIMARY
                            REPLAY_TYPE = PHYSICAL
                          HADR_SYNCMODE = SYNC
                             STANDBY_ID = 1
                          LOG_STREAM_ID = 0
                             HADR_STATE = PEER
                    PRIMARY_MEMBER_HOST = hostP.ibm.com
                       PRIMARY_INSTANCE = db2inst
                         PRIMARY_MEMBER = 0
                    STANDBY_MEMBER_HOST = hostS1.ibm.com
                       STANDBY_INSTANCE = db2inst
                         STANDBY_MEMBER = 0
                    HADR_CONNECT_STATUS = CONNECTED
               HADR_CONNECT_STATUS_TIME = 06/08/2011 13:38:10.199479 (1307565490)
            HEARTBEAT_INTERVAL(seconds) = 25
                  HADR_TIMEOUT(seconds) = 100
          TIME_SINCE_LAST_RECV(seconds) = 3
               PEER_WAIT_LIMIT(seconds) = 0
             LOG_HADR_WAIT_CUR(seconds) = 0.000
      LOG_HADR_WAIT_RECENT_AVG(seconds) = 0.006298
     LOG_HADR_WAIT_ACCUMULATED(seconds) = 0.516
                    LOG_HADR_WAIT_COUNT = 82
  SOCK_SEND_BUF_REQUESTED,ACTUAL(bytes) = 0, 50772
  SOCK_RECV_BUF_REQUESTED,ACTUAL(bytes) = 0, 87616
              PRIMARY_LOG_FILE,PAGE,POS = S0000009.LOG, 1, 49262315
              STANDBY_LOG_FILE,PAGE,POS = S0000009.LOG, 1, 49262315
                    HADR_LOG_GAP(bytes) = 0
       STANDBY_REPLAY_LOG_FILE,PAGE,POS = S0000009.LOG, 1, 49262315
         STANDBY_RECV_REPLAY_GAP(bytes) = 0
                       PRIMARY_LOG_TIME = 06/08/2011 13:49:19.000000 (1307566159)
                       STANDBY_LOG_TIME = 06/08/2011 13:49:19.000000 (1307566159)
                STANDBY_REPLAY_LOG_TIME = 06/08/2011 13:49:19.000000 (1307566159)
           STANDBY_RECV_BUF_SIZE(pages) = 16
               STANDBY_RECV_BUF_PERCENT = 0
             STANDBY_SPOOL_LIMIT(pages) = 0
                   PEER_WINDOW(seconds) = 0
               READS_ON_STANDBY_ENABLED = Y
      STANDBY_REPLAY_ONLY_WINDOW_ACTIVE = N
MON_GET_HADR 表格函數
如果您在主要資料庫上發出此查詢,則它會傳回所有待命資料庫的相關資訊。 如果您要對待命資料庫發出 MON_GET_HADR 函數,請注意下列幾點:
  • 您必須在待命資料庫上啟用待命時讀取功能。
  • 如果 HADR 設定有多個待命資料庫,則該表格函數不會傳回任何其他待命資料庫的任何相關資訊。
  • Db2 pureScale 環境中的 HADR 不支援待命上的讀取,因此無法在待命上使用表格功能。
例如,您可以對主要資料庫發出下列查詢:
db2 "select HADR_ROLE, STANDBY_ID, HADR_STATE, 
            varchar(PRIMARY_MEMBER_HOST,20) as PRIMARY_MEMBER_HOST,
            varchar(STANDBY_MEMBER_HOST,20) as STANDBY_MEMBER_HOST
     from table (mon_get_hadr(NULL))"
範例輸出如下所示:
HADR_ROLE  STANDBY_ID  HADR_STATE  PRIMARY_MEMBER_HOST  STANDBY_MEMBER_HOST
---------  ----------  ----------  -------------------  -------------------
PRIMARY             1  PEER        hostP.ibm.com        hostS1.ibm.com     

1 record(s) selected.
GET SNAPSHOT FOR DATABASE 指令

此指令會收集狀態資訊並將輸出格式化。 所傳回的資訊是您發出指令時資料庫管理程式作業狀態的 Snapshot。 HADR 資訊顯示在標題下的輸出中HADR status.

db2GetSnapshot API

此 API 會收集資料庫管理程式監視器資訊,並將它寫入使用者配置的資料緩衝區。 所傳回的資訊是呼叫 API 時資料庫管理程式作業狀態的 Snapshot。

其他 Snapshot 管理視圖及表格函數
您可以使用下列非 HADR 專屬的 Snapshot 管理視圖及表格函數,並傳回更廣泛的資訊集,來查詢 HADR 資訊的子區段:
  • ADMIN_GET_STORAGE_PATHS
  • MON_GET_TRANSACTION_LOG
  • MON_GET_DATABASE
  • MON_GET_MEMORY_POOL
  • MON_GET_MEMORY_SET
  • MON_GET_TRANSACTION_LOG