DB2 HADR的heartbeat檢測

zchbaby2000發表於2018-09-21


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 秒)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/725820/viewspace-2214729/,如需轉載,請註明出處,否則將追究法律責任。

相關文章