DB2的Primary和Standby之間是通過發送心跳信號來檢測對方是否存在的
與此心跳有關的幾個db2pd -db xxx -hadr 監控指標
HEARTBEAT_INTERVAL(seconds) = 30
HEARTBEAT_MISSED = 0
HEARTBEAT_EXPECTED = 58588
HADR_TIMEOUT(seconds) = 120
需要查看的是 HEARTBEAT_MISSED/HEARTBEAT_EXPECTED的比值
HADR_TIMEOUT是DB CFG的一個參數,這裏設置爲 120
HEARTBEAT_INTERVAL 計算方法: HADR_TIMEOUT/4 = 120/4=30
HEARTBEAT_INTERVAL的最大值是 30秒
推薦的 hadr_timeout 參數設置至少爲 60 秒。
HADR_TIMEOUT 推薦值是120 seconds. 計算以後 HEARTBEAT_INTERVAL 是 30 秒.
設置 hadr_timeout參數時,要考慮網絡穩定性和機器響應時間。如果網絡擁有不規則或長時間傳輸延遲,則應使用更長的超時設置。
每一次心跳,在Primary端都會產生一個 PEER_WINDOW_END值,並且發送到Standby端。
如果Primary端在 PEER_WINDOW_END之前失敗,可以執行一個沒有數據損失的故障轉移 (TAKEOVER BY FORCE 命令添加了一個 PEER WINDOW ONLY 選項)
hadr_peer_window設置 >= 響應時間 + 安全 邊際 + 心跳間隔
其中:
響應時間 = 自動化軟件探測到失敗並調用 HADR 接管的預計時間
安全邊際 = 5 秒,主 - 備用機器時鐘同步的安全邊際
心跳間隔 = MIN(hadr_timeout值 /4,hadr_peer_window值 /4,30 秒)