HADR(High Availability Disaster Recovery,高可用性災難恢復)是IBM DB2數據庫上的數據庫級別的高可用性數據復制機制。
SNMP trap(SNMP陷阱):在網管系統中,被管理設備中的SNMP代理可以在任何時候向SNMP網絡管理工作站報告錯誤情況,而不是等待SNMP網絡管理工作站的再次輪詢。
生產環境下由于某些原因,HADR主備機之間的連接會斷開,影響數據庫的高可用性。
由于斷開的情況下數據庫無法主動發送告警,數據庫服務器也不能連接公網發送告警郵件,這里考慮使用SNMP trap和SHELL腳本配合,定期檢查HADR狀態,在異常的時候向SNMP網絡管理工作站發送SNMP消息,由管理工作站向DBA發送郵件告警。
操作和配置步驟如下:
1.首先在數據庫服務器安裝net-snmp-utils軟件包,該軟件包包含了snmptrap命令,用于發送SNMP消息。
yum -y install netsnmp-utils
2.數據庫服務器檢查HADR狀態和發送trap的腳本內容如下:

# 如果腳本檢查HADR狀態不是PEER狀態,就向snmptrapd所在的網絡管理工作站發送消息;public是 團 體 名,1.1.1.1是snmptrapd所在服務器的ip,1.2.3.4.5 用來標識信息
3.將腳本保存為/home/db2inst1/db2_hadr_check.sh,并賦予執行權限。
4.在數據庫服務器/etc/crontab文件中添加如下語句:

#每隔一分鐘,運行腳本檢查DB2數據庫的HADR狀態
5.確保在網絡管理工作站可以連接公網,安裝netsnmp軟件包,該軟件包包含snmptrapd命令,用于在后臺接收數據庫服務器發送的SNMP消息。
yum -y install netsnmp
6.對 文 件/etc/snmptrapd.conf添加如下內容:

#捕獲到1.2.3.4.5的標識信息,就執行mail.sh的腳本發告警郵件
authCommunity log,execute,net public
7.以后臺運行方式執行snmptrapd命令:
snmptrapd -c /etc/snmptrapd.conf -d
8.在網絡管理工作站安裝mailx包。
CentOS下的配置文件是/etc/mail.rc。
Debian下的配置文件是/etc/nail.rc。
#注 意debian下 是nail,不是 mail
9.發件人配置文件/etc/nail.rc內容如下:
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 為發件人郵箱
10.報警腳本mail.sh內容如下,記得賦予腳本執行權限:
#!/bin/bash
echo error | mail-s "db2 hadr is down"support@b.com
#發送郵件到support@b.com數據庫管理員的郵箱