HADR (High Availability Disaster Recovery) 透過持續資料複寫從主資料庫傳送至備援資料庫,避免資料遺失。本文說明 HADR 啟動/停止命令、狀態監控與接管/故障轉移操作。
HADR_TIMEOUT:主庫啟動 HADR 時等待備援連線的秒數,逾時則啟動失敗。DEACTIVATE DATABASE SAMPLE
START HADR ON DATABASE SAMPLE [USER db2admin USING db2admin] AS STANDBY
DEACTIVATE DATABASE SAMPLE
START HADR ON DATABASE SAMPLE [USER db2admin USING db2admin] AS PRIMARY [BY FORCE]
BY FORCE:強制啟動主庫,不等待備援連線 (適用備援暫時離線場景)。BY FORCE,主庫會在 HADR_TIMEOUT 內等待備援連線,逾時失敗。DEACTIVATE DATABASE SAMPLE
STOP HADR ON DATABASE SAMPLE [USER db2admin USING db2admin]
注意:若在作用中備援上直接下 STOP HADR 會失敗,必須先 DEACTIVATE。
STOP HADR ON DATABASE SAMPLE [USER db2admin USING db2admin]
作用中主庫執行此命令會斷開所有連線,資料庫轉為標準模式並保持聯機。
db2pd -d SAMPLE -hadr
輸出關鍵欄位:
HADR_STATE:PEER / REMOTE_CATCHUP / LOCAL_CATCHUP / DISCONNECTEDPRIMARY_LOG_FILE, STANDBY_LOG_FILE:日誌檔同步進度HADR_CONNECT_STATUS:CONNECTED / DISCONNECTED只能在備援資料庫執行 TAKEOVER。
TAKEOVER HADR ON DATABASE SAMPLE
前提:備援處於 PEER 或 REMOTE_CATCHUP 狀態,資料零遺失。
TAKEOVER HADR ON DATABASE SAMPLE BY FORCE
適用主庫故障、備援非 PEER 狀態。可能遺失未同步日誌,謹慎使用。
START HADR ON DATABASE SAMPLE AS STANDBYdb2pd -hadr 確認雙方進入 PEER 狀態。| 現象 | 可能原因 | 對策 |
|---|---|---|
| 主庫啟動 HADR 逾時 | 備援未啟動、網路不通、防火牆阻擋 | 先啟動備援,檢查 TCP/IP 連通性與 HADR_PORT |
| 備援長期處於 REMOTE_CATCHUP | 網路頻寬不足、主庫寫入量大、備援 CPU/IO 瓶頸 | 調整 HADR_SYNCMODE、增加網路頻寬、優化備援硬體 |
| 強制接管後資料不一致 | 未同步日誌遺失 | 若可能,從主庫備份重建備援;否則接受資料遺失 |