好處:
1. 主服務(wù)器故障時,HA需要在備份機(jī)上重啟數(shù)據(jù)庫Instance, 這通常需要花費幾分鐘時間。而HADR需要回滾未完成的事務(wù),一般來說在正常OLTP環(huán)境下,很少有長事務(wù),所以HADR備份機(jī)的啟動速度比較快(30秒內(nèi))。
2. HADR可以實現(xiàn)遠(yuǎn)程備份,當(dāng)然HA也可以通過磁盤陣列網(wǎng)絡(luò)的高級拷貝功能實現(xiàn)某種程度的遠(yuǎn)程備份。但是這種磁盤拷貝至少比HADR多耗費3倍以上網(wǎng)絡(luò)帶寬。
3. 聽說HADR正在做Readonly on Standby,到時候備機(jī)可讀就比不可讀的HA的備機(jī)強了不少。
缺點:
1. HADR需要多一倍的存儲空間。HA是共享存儲的。
2. HADR在擴(kuò)展表空間,使用超過2GB LOB,使用DPF方面有諸多的限制。對維護(hù)人員的要求比較高。
3. HADR的備機(jī)空閑時也需要不停的replay log,需要占用CPU和內(nèi)存資源。HA的備機(jī)空閑時幾乎不占用CPU和內(nèi)存資源,可以做交互備份。
總結(jié)來說,HA適用于有一定高可用性需求的小型企業(yè)環(huán)境。而HADR適用于有高可用性或遠(yuǎn)程熱備份需求的大型企業(yè)用戶。
下面介紹,如何配置HADR。
1. 軟硬件需求
兩臺獨立的服務(wù)器都必須有相同的操作系統(tǒng)和版本號
兩臺服務(wù)器的DB2主版本號必須一致
建議兩臺服務(wù)器使用相同的小版本號(fixpack)
主服務(wù)器和備份服務(wù)器必須用相同的存儲路徑
2. 在主備機(jī)上分別安裝DB2并創(chuàng)建Instance
3. 在主機(jī)上創(chuàng)建數(shù)據(jù)庫并修改參數(shù)
打開日志保留
4. 備份主服務(wù)器數(shù)據(jù)庫
5. 在備份服務(wù)器上恢復(fù)數(shù)據(jù)庫
恢復(fù)數(shù)據(jù)庫時同時更新歷史文件
注意: 備份服務(wù)器的數(shù)據(jù)庫必須處于roll forward pending狀態(tài),才能啟動HADR as standby。所以,恢復(fù)數(shù)據(jù)庫以后,千萬不要執(zhí)行db2 rollforward end of log。HADR假設(shè)備機(jī)的日志比主機(jī)日志舊,所以備機(jī)最好就不要執(zhí)行前滾日志操作,等啟動HADR時,備機(jī)會自動自行該操作。
6. 修改HADR的參數(shù)
主備機(jī)上面HADR的參數(shù)要相互對應(yīng)
主機(jī)參數(shù)
HADR_LOCAL_HOST
HADR_REMOTE_HOST
HADR_LOCAL_SVC
HADR_REMOTE_SVC
<instanceName>
HADR_REMOTE_INST
使用db2 update db cfg修改上述參數(shù)。
注意主備機(jī)的監(jiān)聽端口不能被其他程序占用。而且也不能使用instance使用的端口(SVCENAME中指定的端口)
7. 停止主服務(wù)器,重啟備份服務(wù)器
主服務(wù)器:db2stop
備份服務(wù)器:db2stop
在備份服務(wù)器上啟動HADR
8. 啟動主服務(wù)器
主服務(wù)器:db2start
在主服務(wù)器上啟動HADR
可以使用db2pd -db hadrdb -hadr命令檢查HADR的啟動情況。如果主備機(jī)都在"peer"狀態(tài)證明HADR啟動成功。
9. 嘗試進(jìn)行切換(take over)
切換命令只能在備機(jī)上執(zhí)行:
db2 takeover HADR on DB <database> [by force]
關(guān)于HADR的其他問題請參考: