DB2 Q 复制实施方案
1. Q 复制背景 Q 复制是 DB2 复制技术中较新的一种技术,通过将 Websphere MQ 引进到复制体系结构中,可以使得复制更加可靠、稳定和快速。本文将通过一个完整的例子来说明如何搭建基本环境,以及如何进行操作,从而实现远程 Q 复制。
2. 搭建环境情况 硬件:
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
3. MQ 配置 3.1 创建队列 上传软件到服务器上面,解压到当前路径下面
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 3.2 创建通道 源端操作
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 &】
4. DB2 配置 4.1 创建数据库 上次软件到服务器上面,上传方式可以通过多种方式。
解压数据库软件到 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 4.2 编目数据库 目标端操作 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)"; 5. Q 复制配置 5.1 创建控制表 在源端打开复制中心 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>john.doe@xyz.com</email>")"
db2 "update xml set info="<email>newemail@someplace.com</email>"";
查看源端和目标端
db2 "select * from xml"; 目标端插入
db2 "insert into xml values
(1001, "<email>john.doe@xyz.com</email>")"
db2 "update xml set info="<email>newemail@someplace.com</email>"";
查看源端和目标端
db2 "select * from xml"; 6. 日常维护 6.1 Mq 维护 查看通道
Dspmq 删除通道
dltmqm QGMR1
6.2 DB2 维护 查看数据库的配置信息
db2 get db cfg for east 查看实例的配置信息
db2 get dbm cfg