高可用性災難回復 (HADR) 監視
監視是設定和維護 HADR 設定不可或缺的一部分。 Db2® 監視介面提供環境配置及性能的詳細圖片。
您可以使用許多方法來監視 HADR 資料庫的狀態。 有兩種偏好的 HADR 監視方法:
- db2pd 指令
- MON_GET_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