高可用性災難恢復(HADR)是 DB2 企業版核心 HA 方案。本文以 DB2 v8.2 EE 為例,詳細記錄雙節點 HADR 搭建全流程:環境檢核、參數配置、備份還原、啟動驗證、故障切換測試,提供可直接落地的操作手冊。
db2licm -l 確認DB2DB2COMM=TCPIP 已設定(預設值)db2sampl(或自建)db2 update db cfg for sample using LOGRETAIN ON
db2 update db cfg for sample using TRACKMOD ON
db2 update db cfg for sample using LOGINDEXBUILD ON
db2 update db cfg for sample using INDEXREC RESTARTdb2 backup db sample to f:\testdb2 restore db sample from f:\test replace history filedb2 update db cfg for sample using HADR_LOCAL_HOST 10.10.20.110
db2 update db cfg for sample using HADR_LOCAL_SVC 44444
db2 update db cfg for sample using HADR_REMOTE_HOST 10.10.20.16
db2 update db cfg for sample using HADR_REMOTE_SVC 33333
db2 update db cfg for sample using HADR_REMOTE_INST DB2
db2 update db cfg for sample using HADR_SYNCMODE NEARSYNCdb2 deactivate database sample
db2 start hadr on database sample as standbydb2 update db cfg for sample using HADR_LOCAL_HOST 10.10.20.16
db2 update db cfg for sample using HADR_LOCAL_SVC 33333
db2 update db cfg for sample using HADR_REMOTE_HOST 10.10.20.110
db2 update db cfg for sample using HADR_REMOTE_SVC 44444
db2 update db cfg for sample using HADR_REMOTE_INST DB2
db2 update db cfg for sample using HADR_SYNCMODE NEARSYNCdb2 start hadr on database sample as primarydb2pd -d sample -hadr 確認 HADR_STATE = PEER-- Server B 執行
db2 takeover hadr on database sample user db2admin using db2admin
-- Server B 執行(BY FORCE 選項)
db2 takeover hadr on database sample user db2admin using db2admin by force
-- Server A 原 Primary 寫入測試資料
db2 connect to sample
db2 create table test(id integer)
db2 insert into test values(1)
db2 insert into test values(2)
db2 commit
-- Server B 接管後查詢
db2 connect to sample
db2 select * from test -- 應看到 1,2
| 參數 | 建議值 | 說明 |
|---|---|---|
| HADR_SYNCMODE | NEARSYNC | 平衡效能與資料零損失(同步寫入本地日誌、非同步傳送) |
| HADR_TIMEOUT | 120 | 網路逾時秒數,預設 120 秒 |
| HADR_PEER_WINDOW | 0 | 僅 NEARSYNC/SYNC 有效,允許短暫網路中斷仍維持 PEER 狀態 |
完成上述步驟,即擁有一套可生產部署的 DB2 HADR 環境。建議每季進行一次故障切換演練,驗證 RTO/RPO 指標。