参考http://www.ibm.com/developerworks/cn/data/library/techarticle/dm-1206xuj2/index.html
#
机器IP:
M3 10.123.18.243
M4 10.123.18.244
M5 10.123.18.245
用户,准备:
groupadd -g 999 dasadm1
groupadd -g 998 db2fgrp1
groupadd -g 997 db2grp1
useradd -u 1004 -g db2grp1 -d /home/db2insta db2insta
useradd -u 1003 -g db2fgrp1 -d /home/db2fenc1 db2fenc1
useradd -u 1002 -g dasadm1 -d /home/dasusr1 dasusr1
/opt/ibm/db2/V10.5/instance/db2icrt -a server -u db2insta db2insta
vi /etc/services
DB2_db2insta_pri 55003/tcp
DB2_db2insta_2nd 55004/tcp
DB2_db2insta_3rd 55005/tcp
mkdir -p /db2data
mkdir -p /db2log/actlog/
mkdir -p /db2log/arclog
mkdir -p /db2diag/db2dump/
chown db2insta:db2grp1 -R /db2data
chown db2insta:db2grp1 -R /db2log/actlog/
chown db2insta:db2grp1 -R /db2log/arclog
chown db2insta:db2grp1 -R /db2diag/db2dump/
建立测试库
在M1上操作(建库,开归档,备份)
db2 update dbm cfg using SVCENAME 50000
db2set db2comm=tcpip
db2set DB2_STANDBY_ISO=UR
db2set DB2_HADR_ROS=ON
db2 " create db MYDB automatic storage yes on /db2data dbpath on /db2data USING CODESET UTF-8 TERRITORY CN PAGESIZE 16384"
db2 connect to MYDB
db2 update db cfg using NEWLOGPATH /db2log/actlog/
db2 update db cfg using LOGARCHMETH1 DISK:/db2log/arclog
db2 update db cfg using NUM_LOG_SPAN 40
db2 update db cfg using MAX_LOG 20
db2 update dbm cfg using DIAGPATH /db2diag/db2dump/
db2stop
#OFFLINE BACKUP
db2 "backup db MYDB to /dev/null "
db2 connect to MYDB
[db2insta@m3 ~]$ db2 "backup db MYDB online to /tmp/"
Backup successful. The timestamp for this backup image is : 20150121215739
scp /tmp/MYDB.0.db2insta.DBPART000.20150121215739.001 到M4,M5
# 分别还原数据库(M4,M5上)
db2 "restore database MYDB FROM /tmp taken at 20150121215739"
db2 "rollforward db MYDB query status "
Rollforward Status
Input database alias = MYDB
Number of members have returned status = 1
Member ID = 0
Rollforward status = DB pending
Next log file to be read = S0000000.LOG
Log files processed = -
Last committed transaction = 2015-01-22-02.57.42.000000 UTC
# HADR配置
# 在 M3 上
db2 "UPDATE DB CFG FOR MYDB USING
HADR_TARGET_LIST M4:DB2_db2insta_2nd|M5:DB2_db2insta_3rd
HADR_REMOTE_HOST M4
HADR_REMOTE_INST db2insta
HADR_REMOTE_SVC DB2_db2insta_2nd
HADR_SYNCMODE sync
HADR_LOCAL_HOST M3
HADR_LOCAL_SVC DB2_db2insta_pri"
# 在 M4 上
db2 "UPDATE DB CFG FOR MYDB USING
HADR_TARGET_LIST M3:DB2_db2insta_pri|M5:DB2_db2insta_3rd
HADR_REMOTE_HOST M3
HADR_REMOTE_INST db2insta
HADR_REMOTE_SVC DB2_db2insta_pri
HADR_SYNCMODE sync
HADR_LOCAL_HOST M4
HADR_LOCAL_SVC DB2_db2insta_2nd "
# 在 M5 上
db2 "UPDATE DB CFG FOR MYDB USING
HADR_TARGET_LIST M4:DB2_db2insta_2nd|M3:DB2_db2insta_pri
HADR_REMOTE_HOST M3
HADR_REMOTE_INST db2insta
HADR_REMOTE_SVC DB2_db2insta_pri
HADR_SYNCMODE superasync
HADR_LOCAL_HOST M5
HADR_LOCAL_SVC DB2_db2insta_3rd "
#启动HADR
# 在 M4 上
db2 START HADR ON DB MYDB AS STANDBY
# 在 M5 上
db2 START HADR ON DB MYDB AS STANDBY
# 在 M3 上
db2 START HADR ON DB MYDB AS PRIMARY
检查HADR状态
# 在 M3上
db2 "select HADR_ROLE, STANDBY_ID, HADR_STATE,
varchar(PRIMARY_MEMBER_HOST,20) as PRIMARY_HOST,
varchar(STANDBY_MEMBER_HOST,20) as STANDBY_HOST
from table (mon_get_hadr(NULL))"
HADR_ROLE STANDBY_ID HADR_STATE PRIMARY_HOST STANDBY_HOST
------------- ---------- ----------------------- -------------------- --------------------
PRIMARY 1 PEER M3 M4
PRIMARY 2 REMOTE_CATCHUP M3 M5
配置期间遇到的问题
报错1:
EduStartup, probe:21180
MESSAGE : ZRC=0x878001AC=-2021654100=HDR_ZRC_CONFIG_INVALID_HOST_IN_TARGETLIST
"Some entry in HADR_TARGET_LIST cannot be resolved into valid TCP/IP address or port."
DATA #1 : SQLCA, PD_DB2_TYPE_SQLCA, 136 bytes
sqlcaid : SQLCA sqlcabc: 136 sqlcode: 1766 sqlerrml: 0
sqlerrmc:
报错2:
FUNCTION: DB2 UDB, High Availability Disaster Recovery, hdrSpawnEdus, probe:25100
MESSAGE : ZRC=0x8280001A=-2105540582=HDR_ZRC_NO_STANDBY
"Comm time-out in unforced HADR primary start, to avoid split-brain"
这2次报错均与hosts文件有关,
1. /etc/hosts 文件忘记写M5的IP
2. hosts文件配置了 10.123.18.xxx localhost M3 ,去掉改行就行了
发现端口绑定在127地址下
[db2insta@m4 ~]$ netstat -an |grep -i 55004
tcp 0 0 127.0.0.1:55004 0.0.0.0:* LISTEN
3. linux 下注意开放端口,简单粗暴的做法是关闭iptables
chkconfig iptables off;service iptables stop
添加新评论0 条评论