HADR(High Availability Disaster Recovery,高可用性災(zāi)難恢復(fù))是IBM DB2數(shù)據(jù)庫上的數(shù)據(jù)庫級別的高可用性數(shù)據(jù)復(fù)制機制。
SNMP trap(SNMP陷阱):在網(wǎng)管系統(tǒng)中,被管理設(shè)備中的SNMP代理可以在任何時候向SNMP網(wǎng)絡(luò)管理工作站報告錯誤情況,而不是等待SNMP網(wǎng)絡(luò)管理工作站的再次輪詢。
生產(chǎn)環(huán)境下由于某些原因,HADR主備機之間的連接會斷開,影響數(shù)據(jù)庫的高可用性。
由于斷開的情況下數(shù)據(jù)庫無法主動發(fā)送告警,數(shù)據(jù)庫服務(wù)器也不能連接公網(wǎng)發(fā)送告警郵件,這里考慮使用SNMP trap和SHELL腳本配合,定期檢查HADR狀態(tài),在異常的時候向SNMP網(wǎng)絡(luò)管理工作站發(fā)送SNMP消息,由管理工作站向DBA發(fā)送郵件告警。
操作和配置步驟如下:
1.首先在數(shù)據(jù)庫服務(wù)器安裝net-snmp-utils軟件包,該軟件包包含了snmptrap命令,用于發(fā)送SNMP消息。
yum -y install netsnmp-utils
2.數(shù)據(jù)庫服務(wù)器檢查HADR狀態(tài)和發(fā)送trap的腳本內(nèi)容如下:
# 如果腳本檢查HADR狀態(tài)不是PEER狀態(tài),就向snmptrapd所在的網(wǎng)絡(luò)管理工作站發(fā)送消息;public是 團 體 名,1.1.1.1是snmptrapd所在服務(wù)器的ip,1.2.3.4.5 用來標識信息
3.將腳本保存為/home/db2inst1/db2_hadr_check.sh,并賦予執(zhí)行權(quán)限。
4.在數(shù)據(jù)庫服務(wù)器/etc/crontab文件中添加如下語句:
#每隔一分鐘,運行腳本檢查DB2數(shù)據(jù)庫的HADR狀態(tài)
5.確保在網(wǎng)絡(luò)管理工作站可以連接公網(wǎng),安裝netsnmp軟件包,該軟件包包含snmptrapd命令,用于在后臺接收數(shù)據(jù)庫服務(wù)器發(fā)送的SNMP消息。
yum -y install netsnmp
6.對 文 件/etc/snmptrapd.conf添加如下內(nèi)容:
#捕獲到1.2.3.4.5的標識信息,就執(zhí)行mail.sh的腳本發(fā)告警郵件
authCommunity log,execute,net public
7.以后臺運行方式執(zhí)行snmptrapd命令:
snmptrapd -c /etc/snmptrapd.conf -d
8.在網(wǎng)絡(luò)管理工作站安裝mailx包。
CentOS下的配置文件是/etc/mail.rc。
Debian下的配置文件是/etc/nail.rc。
#注 意debian下 是nail,不是 mail
9.發(fā)件人配置文件/etc/nail.rc內(nèi)容如下:
set from=a@b.com
set smtp=14.17.57.217
set smtp-auth-user=a@b.com
set smtp-authpassword=passwd
set smtp-auth=login
#a@b.com 為發(fā)件人郵箱
10.報警腳本mail.sh內(nèi)容如下,記得賦予腳本執(zhí)行權(quán)限:
#!/bin/bash
echo error | mail-s "db2 hadr is down"support@b.com
#發(fā)送郵件到support@b.com數(shù)據(jù)庫管理員的郵箱