文章主要向大家讲述的是实现三点之间的对等(peer-to-peer)DB2 Q 复制配置的实际操作步骤,大家都知道对等 (peer-to-peer) Q 复制是 DB2 Q 数据库复制中一种。利用这种对等 Q 复制可以将任何一台服务器上发生的数据变化通过 MQ 传输到其它相关联的服务器上。
并复制到这些服务器上,从而实现多台数据库服务器之间的数据同步。 本文将通过一个例子说明如何搭建对等 Q 复制的基本配置环境,实现三个点之间的对等 Q 复制。
简介
对等 Q 复制主要适用于在两台或者多台数据库之间同步数据,它具有如下主要特性:
可以对两台或者两台以上的数据库服务器的表进行复制。
在对等DB2 Q 复制配置中的任何一台数据库服务器上的变化可以复制到其它所有相关的数据库服务器中。
所有的服务器是对等关系,没有“主”服务器的概念,如果发生冲突,最近时间戳更新的数据是有效数据。
越来越多的用户开始采用 DB2 Q 复制作为 DB2 的一种高可用,高扩展性的解决方案,搭建“双活” 甚至“三活”的数据库系统。
图 1. 三台服务器之间的对等 Q 复制架构图
本文将通过一个例子来说明如何在三个数据库之间搭建对等 Q 复制环境。
本文档主要分为三个大部分:
***个部分是操作系统、数据库、 MQ 的基本配置 ;
第二个部分是通过复制中心建立对等 Q 复制环境;
第三部分是对等 Q 复制的配置校验和复制测试。
操作系统、数据库、 DB2 Q 复制配置
配置前准备工作
在搭建 Q 复制环境之前,需要进行如下准备工作:
1. 安装 DB2 数据库软件。
2. 在操作系统中创建如表 1 所示的 db2 instance 、mqm 用户及组。
表 1. 用户及组设置
描述
- Peer A Peer B Peer C
- Instance ID db2inst1 db2inst2 db2inst3
- Instance Group db2grp1,mqm db2grp2,mqm db2grp3,mqm
- Fence ID db2fenc1 db2fenc2 db2fenc3
- Fence Group db2fgrp1,mqm db2fgrp2,mqm db2fgrp3,mqm
- MQ ID mqm mqm mqm
- MQ Group mqm mqm mqm
- REP ID qrepladm qrepladm qrepladm
3. 安装 MQ 软件。
4. 创建 DB2 实例和数据库。
注:本文使用的软件版本是DB2 v9.1.0.6和WebSphere MQ 6.0.2.3。本文测试环境是在同一台Linux服务器上创建三个DB2实例和数据库来模拟三点之间的复制。
数据库设置
在上述准备工作完成以后,实例和数据库信息如表 2 所示。
表 2. 数据库信息
描述 Peer A Peer B Peer C
- Instance db2inst1 db2inst2 db2inst3
- Port 50000 50001 50002
- IP 127.0.0.1 127.0.0.1 127.0.0.1
- Indirect Database TP1 TP2 TP3
- Remote Database TP2, TP3 TP1, TP3 TP1, TP2
注 : 在使用复制功能之前,所有数据库都应该将日志模式设置为archive logging模式(归档日志模式)。
创建完 DB2 实例和数据库以后,需要在本地进行编目远程数据库后才可以对其进行访问操作。
例如:在 db2inst1 用户下,输入清单 1 所示的命令来实现对远程 TP2,TP3 数据库的编目:
清单 1. 编目 DB2 数据库
- db2 catalog tcpip node db2inst2 remote 127.0.0.1 server 50001 db2 catalog database tp2 at node
- db2inst2 db2 catalog tcpip node db2inst3 remote 127.0.0.1 server 50002 db2 catalog database tp3 at node db2inst3 db2 terminate
用清单 2 所示的方法测试 db2inst1 实例是否能正常连接 db2inst2 、db2inst3 实例上的 TP2 、TP3 数据库。
清单 2. 连接远程数据库
- db2 connect to tp2 user db2inst2 using *** db2 connect to tp3 user db2inst3 using *** db2 terminate
同样的方法在 db2inst2 和 db2inst3 上编目相应的节点和数据库信息。使每个实例都能访问其他两个实例上的数据库。
为了方便复制操作,通常会在各个DB2 Q 复制配置上创建相同的模式和复制表。
用清单 3 所示的方法在 TP1、TP2、TP3 上给 qrepladm 用户授权并创建 QREPLADM.S_TAB 表
清单 3. 授权及建表
- db2 grant DBADM on DATABASE to USER qrepladm db2 "create table QREPLADM.S_TAB(id integer not null PRIMARY KEY,content varchar(20))"
MQ 对象设置
本文附件提供一些脚本用于创建相关的 MQ 对象,用户可以修改或者直接使用它们来创建必要的 MQ 对象。QM1.mqs、QM2.mqs、QM3.mqs 文件分别用于创建 QM1、QM2、QM3 相关的消息对象。上述三个脚本中分别定义了 QM1、QM2、QM3 三个队列管理器中的队列、通道等对象。
在 Peer A 上,定义名叫 QM1 的 MQ manager。如果 QM1 已经存在,按照清单 4 所示的命令删除旧的 QM1:
清单 4. 停止并删除队列管理器
- endmqm QM1 dltmqm QM1
然后按照清单 5 所示的方法来创建 QM1:以上的相关内容就是对三点之间的对等(peer-to-peer)DB2 Q 复制配置的介绍,望你能有所收获。
完整内容的学习,请访问:
http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0912zengh/index.html
【编辑推荐】