1. Q复制背景
Q复制是DB2复制技术中较新的一种技术,通过将Websphere MQ引进到复制体系结构中,可以使得复制更加可靠、稳定和快速。本文将通过一个完整的例子来说明如何搭建基本环境,以及如何进行操作,从而实现远程Q复制。
硬件:
VirtualBox-4,xmanager4
软件:
Red Hat Enterprise Linux Server release 5.5
,WMQv6023Trial-x86_linux_2.tar.gz
v9.7_linuxia32_server.tar.gz
规划
|
IP |
MQ队列 |
实例 |
数据库 |
源端 |
192.168.15.200 |
SRC_QM |
db2inst1 |
east |
目标端 |
192.168.15.211 |
TGT_QM |
db2inst1 |
west |
上传软件到服务器上面,解压到当前路径下面
tar -xzvf WMQv6023Trial-x86_linux_2.tar.gz
添加相应的组及用户
groupadd -g 1300 mqm
groupadd -g 1400 staff
useradd -m -d /home/mqm -g mqm -G staff -u 1301 mqm
安装MQ
进入到mq的解压目录下面
./mqlicense.sh –accept
rpm -ivh *.rpm
两台服务器都需要做操作。
源端操作
crtmqm SRC_QM
strmqm SRC_QM
runmqsc SRC_QM
DEFINE QLOCAL ('ADMINQ') DEFPSIST(YES)
DEFINE QLOCAL ('RESTARTQ') DEFPSIST(YES)
DEFINE QLOCAL('TGT_QM') USAGE(XMITQ) DEFPSIST(YES)
DEFINE QREMOTE('SENDQ') RNAME('RECVQ') RQMNAME('TGT_QM') XMITQ('TGT_QM') DEFPSIST(YES)
REFRESH SECURITY
end
目标端操作
crtmqm TGT_QM
strmqm TGT_QM
runmqsc TGT_QM
DEFINE QLOCAL('RECVQ') DEFPSIST(YES)
DEFINE QLOCAL('SRC_QM') USAGE(XMITQ) DEFPSIST(YES)
DEFINE QREMOTE('ADMINQ') RNAME('ADMINQ') RQMNAME('SRC_QM') XMITQ('SRC_QM') DEFPSIST(YES)
DEFINE QMODEL('IBMQREP.SPILL.MODELQ') DEFSOPT(SHARED) MSGDLVSQ(FIFO) DEFTYPE(PERMDYN)
REFRESH SECURITY
end
源端操作
runmqsc SRC_QM
DEFINE CHL ('SRC_QM.TO.TGT_QM') CHLTYPE(SDR) TRPTYPE(TCP) CONNAME ('IP_address(port)') XMITQ('TGT_QM') DISCINT(0)
DEFINE CHL ('TGT_QM.TO.SRC_QM') CHLTYPE(RCVR) TRPTYPE(TCP)
End
启动通道,监听
runmqlsr -t tcp -m SRC_QM -p 1451 &
runmqsc SRC_QM
start channel (SRC_QM.TO.TGT_QM)
end
或是通过下面的方式启动
【runmqchl -m SRC_QM -c SRC_QM.TO.TGT_QM &】
目标端操作
runmqsc TGT_QM
DEFINE CHL ('TGT_QM.TO.SRC_QM') CHLTYPE(SDR) TRPTYPE(TCP) CONNAME('IP_address(port)') XMITQ('SRC_QM') DISCINT(0)
DEFINE CHL ('SRC_QM.TO.TGT_QM') CHLTYPE(RCVR) TRPTYPE(TCP)
End
启动通道,监听
runmqlsr -t tcp -m TGT_QM -p 1450 &
runmqsc TGT_QM
start channel (TGT_QM.TO.SRC_QM)
end
或是通过下面的方式
【runmqchl -m TGT_QM -c TGT_QM.TO.SRC_QM &】
上次软件到服务器上面,上传方式可以通过多种方式。
解压数据库软件到db2目录中
tar -xzvf v9.7_linuxia32_server.tar.gz -C db2/
添加相应的用户及组
groupadd -g 1000 db2igrp
groupadd -g 1200 db2ifcs
groupadd -g 1500 db2agrp
useradd -m -d /home/mqm -g mqm -G staff -u 1301 mqm
useradd -m -d /home/db2inst1 -g db2igrp -G staff,mqm -u 1302 db2inst1
useradd -m -d /home/db2fuser -g db2ifcs -G mqm,staff -u 1303 db2fuser
useradd -m -d /home/db2das -g db2agrp -u 1501 db2das
设置用户的密码
Passwd db2inst1其他用户都要解除,不过要记得实例用户的密码,设置为inst
安装数据库软件
./db2_install命令方式安装
./db2setup图形界面安装
按照自己的喜好选择安装方式
创建das
进入到/opt/ibm/db2/V9.7/instance中执行
./dascrt -u db2das
创建实例
./db2icrt -a server -u db2inst1 db2inst1
设置实例参数
db2set DB2COMM=TCPIP
db2 update dbm cfg using SVCENAME 50001
创建数据库
切换到实例用户下面
在目标端创建west数据库
db2 create db west
在源端创建east数据库
db2 create db east
数据库开启归档
db2 update db cfg for east using LOGARCHMETH1 disk:/home/db2inst1/arch
db2 update db cfg for west using LOGARCHMETH1 disk:/home/db2inst1/arch
修改完参数后备份数据库。
db2 backup database east
db2 backup database west
目标端操作
db2 catalog tcpip node rmt remote 192.168.15.200 server 50001
db2 catalog db east at node rmt;
db2 terminate
验证
db2 connect to east user db2inst1 using inst
如果连接失败,重启实例或是退出重新登录;实在解决不了的重新执行下这些操作。
目标端操作
db2 catalog tcpip node rmt remote 192.168.15.211 server 50001
db2 catalog db west at node rmt
db2 terminate
验证
db2 connect to west user db2inst1 using inst
如果连接失败,重启实例或是退出重新登录;实在解决不了的重新执行下这些操作。
在源端和目标端创建测试表
db2 "create table xml (id interger,info xml)";
在源端打开复制中心db2rc
启动capture进程
启动apply进程
使用命令启动
源端
nohup asnqcap capture_server=EAST startmode=cold capture_path="caplog" logreuse=y logstdout=y memory_limit=512 &
目标端
nohup asnqapp apply_server=WEST apply_path="applog" logreuse=y &
停止进程
源端
$asnqccmd CAPTURE_SERVER= EAST STOP
目标端
asnqacmd apply_server= WEST STOP
源端插入信息
db2 "insert into xml values (1001, '<email>[email protected]</email>')"
db2 "update xml set info='<email>[email protected]</email>'";
查看源端和目标端
db2 "select * from xml";
目标端插入
db2 "insert into xml values (1001, '<email>[email protected]</email>')"
db2 "update xml set info='<email>[email protected]</email>'";
查看源端和目标端
db2 "select * from xml";
查看通道
Dspmq
删除通道
dltmqm QGMR1
查看数据库的配置信息
db2 get db cfg for east
查看实例的配置信息
db2 get dbm cfg
图片粘贴失败,详细文档见资源