文章主要向大家講述的是實現三點之間的對等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