實現(xiàn)DB2 Q 復(fù)制配置的操作流程描述
文章主要向大家講述的是實現(xiàn)三點之間的對等(peer-to-peer)DB2 Q 復(fù)制配置的實際操作步驟,大家都知道對等 (peer-to-peer) Q 復(fù)制是 DB2 Q 數(shù)據(jù)庫復(fù)制中一種。利用這種對等 Q 復(fù)制可以將任何一臺服務(wù)器上發(fā)生的數(shù)據(jù)變化通過 MQ 傳輸?shù)狡渌嚓P(guān)聯(lián)的服務(wù)器上。
并復(fù)制到這些服務(wù)器上,從而實現(xiàn)多臺數(shù)據(jù)庫服務(wù)器之間的數(shù)據(jù)同步。 本文將通過一個例子說明如何搭建對等 Q 復(fù)制的基本配置環(huán)境,實現(xiàn)三個點之間的對等 Q 復(fù)制。
簡介
對等 Q 復(fù)制主要適用于在兩臺或者多臺數(shù)據(jù)庫之間同步數(shù)據(jù),它具有如下主要特性:
可以對兩臺或者兩臺以上的數(shù)據(jù)庫服務(wù)器的表進行復(fù)制。
在對等DB2 Q 復(fù)制配置中的任何一臺數(shù)據(jù)庫服務(wù)器上的變化可以復(fù)制到其它所有相關(guān)的數(shù)據(jù)庫服務(wù)器中。
所有的服務(wù)器是對等關(guān)系,沒有“主”服務(wù)器的概念,如果發(fā)生沖突,最近時間戳更新的數(shù)據(jù)是有效數(shù)據(jù)。
越來越多的用戶開始采用 DB2 Q 復(fù)制作為 DB2 的一種高可用,高擴展性的解決方案,搭建“雙活” 甚至“三活”的數(shù)據(jù)庫系統(tǒng)。
圖 1. 三臺服務(wù)器之間的對等 Q 復(fù)制架構(gòu)圖
本文將通過一個例子來說明如何在三個數(shù)據(jù)庫之間搭建對等 Q 復(fù)制環(huán)境。
本文檔主要分為三個大部分:
***個部分是操作系統(tǒng)、數(shù)據(jù)庫、 MQ 的基本配置 ;
第二個部分是通過復(fù)制中心建立對等 Q 復(fù)制環(huán)境;
第三部分是對等 Q 復(fù)制的配置校驗和復(fù)制測試。
操作系統(tǒng)、數(shù)據(jù)庫、 DB2 Q 復(fù)制配置
配置前準(zhǔn)備工作
在搭建 Q 復(fù)制環(huán)境之前,需要進行如下準(zhǔn)備工作:
1. 安裝 DB2 數(shù)據(jù)庫軟件。
2. 在操作系統(tǒng)中創(chuàng)建如表 1 所示的 db2 instance 、mqm 用戶及組。
表 1. 用戶及組設(shè)置
描述
- 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. 創(chuàng)建 DB2 實例和數(shù)據(jù)庫。
注:本文使用的軟件版本是DB2 v9.1.0.6和WebSphere MQ 6.0.2.3。本文測試環(huán)境是在同一臺Linux服務(wù)器上創(chuàng)建三個DB2實例和數(shù)據(jù)庫來模擬三點之間的復(fù)制。
數(shù)據(jù)庫設(shè)置
在上述準(zhǔn)備工作完成以后,實例和數(shù)據(jù)庫信息如表 2 所示。
表 2. 數(shù)據(jù)庫信息
描述 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
注 : 在使用復(fù)制功能之前,所有數(shù)據(jù)庫都應(yīng)該將日志模式設(shè)置為archive logging模式(歸檔日志模式)。
創(chuàng)建完 DB2 實例和數(shù)據(jù)庫以后,需要在本地進行編目遠程數(shù)據(jù)庫后才可以對其進行訪問操作。
例如:在 db2inst1 用戶下,輸入清單 1 所示的命令來實現(xiàn)對遠程 TP2,TP3 數(shù)據(jù)庫的編目:
清單 1. 編目 DB2 數(shù)據(jù)庫
- 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 數(shù)據(jù)庫。
清單 2. 連接遠程數(shù)據(jù)庫
- db2 connect to tp2 user db2inst2 using *** db2 connect to tp3 user db2inst3 using *** db2 terminate
同樣的方法在 db2inst2 和 db2inst3 上編目相應(yīng)的節(jié)點和數(shù)據(jù)庫信息。使每個實例都能訪問其他兩個實例上的數(shù)據(jù)庫。
為了方便復(fù)制操作,通常會在各個DB2 Q 復(fù)制配置上創(chuàng)建相同的模式和復(fù)制表。
用清單 3 所示的方法在 TP1、TP2、TP3 上給 qrepladm 用戶授權(quán)并創(chuàng)建 QREPLADM.S_TAB 表
清單 3. 授權(quán)及建表
- db2 grant DBADM on DATABASE to USER qrepladm db2 "create table QREPLADM.S_TAB(id integer not null PRIMARY KEY,content varchar(20))"
MQ 對象設(shè)置
本文附件提供一些腳本用于創(chuàng)建相關(guān)的 MQ 對象,用戶可以修改或者直接使用它們來創(chuàng)建必要的 MQ 對象。QM1.mqs、QM2.mqs、QM3.mqs 文件分別用于創(chuàng)建 QM1、QM2、QM3 相關(guān)的消息對象。上述三個腳本中分別定義了 QM1、QM2、QM3 三個隊列管理器中的隊列、通道等對象。
在 Peer A 上,定義名叫 QM1 的 MQ manager。如果 QM1 已經(jīng)存在,按照清單 4 所示的命令刪除舊的 QM1:
清單 4. 停止并刪除隊列管理器
- endmqm QM1 dltmqm QM1
然后按照清單 5 所示的方法來創(chuàng)建 QM1:以上的相關(guān)內(nèi)容就是對三點之間的對等(peer-to-peer)DB2 Q 復(fù)制配置的介紹,望你能有所收獲。
完整內(nèi)容的學(xué)習(xí),請訪問:
http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0912zengh/index.html
【編輯推薦】