程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> 三點之間的對等DB2 Q復制配置如何操作?

三點之間的對等DB2 Q復制配置如何操作?

編輯:DB2教程

以下的文章主要是介紹三點之間的對等peer-to-peer)Q 復制配置,我們大家都知道對等 (peer-to-peer) Q 復制是 DB2 Q 復制中一種。利用這種對等 Q 復制可以將任何一台服務器上發生的數據變化通過 MQ 傳輸到其它相關聯的服務器上,並復制到這些服務器上。

從而實現多台數據庫服務器之間的數據同步。 本文將通過一個例子說明如何搭建對等 Q 復制的基本配置環境,實現三個點之間的對等 Q 復制。

簡介

對等 Q 復制主要適用於在兩台或者多台數據庫之間同步數據,它具有如下主要特性:

可以對兩台或者兩台以上的數據庫服務器的表進行復制。

在對等配置中的任何一台數據庫服務器上的變化可以復制到其它所有相關的數據庫服務器中。

所有的服務器是對等關系,沒有“主”服務器的概念,如果發生沖突,最近時間戳更新的數據是有效數據。

越來越多的用戶開始采用 DB2 Q 復制作為 DB2 的一種高可用,高擴展性的解決方案,搭建“雙活” 甚至“三活”的數據庫系統。

圖 1. 三台服務器之間的對等 Q 復制架構圖

圖 1. 三台服務器之間的對等 Q 復制架構圖

本文將通過一個例子來說明如何在三個數據庫之間搭建對等 DB2 Q 復制環境。

本文檔主要分為三個大部分:

第一個部分是操作系統、數據庫、 MQ 的基本配置 ;

第二個部分是通過復制中心建立對等 Q 復制環境;

第三部分是對等 Q 復制的配置校驗和復制測試。

操作系統、數據庫、 MQ 的基本配置

配置前准備工作

在搭建 Q 復制環境之前,需要進行如下准備工作:

1. 安裝 DB2 數據庫軟件。

2. 在操作系統中創建如表 1 所示的 db2 instance 、mqm 用戶及組。

表 1. 用戶及組設置

描述 Peer A Peer B Peer C

  1. Instance ID db2inst1 db2inst2 db2inst3   
  2. Instance Group db2grp1,mqm db2grp2,mqm db2grp3,mqm   
  3. Fence ID db2fenc1 db2fenc2 db2fenc3   
  4. Fence Group db2fgrp1,mqm db2fgrp2,mqm db2fgrp3,mqm   
  5. MQ ID mqm mqm mqm   
  6. MQ Group mqm mqm mqm   
  7. 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

  1. Instance db2inst1 db2inst2 db2inst3   
  2. Port 50000 50001 50002   
  3. IP 127.0.0.1 127.0.0.1 127.0.0.1   
  4. Indirect Database TP1 TP2 TP3   
  5. Remote Database TP2, TP3 TP1, TP3 TP1, TP2  

注 : 在使用復制功能之前,所有數據庫都應該將日志模式設置為archive logging模式歸檔日志模式)。

創建完 DB2 實例和數據庫以後,需要在本地進行編目遠程數據庫後才可以對其進行訪問操作。

例如:在 db2inst1 用戶下,輸入清單 1 所示的命令來實現對遠程 TP2,TP3 數據庫的編目:

清單 1. 編目 DB2 數據庫

  1. db2 catalog tcpip node db2inst2 remote 127.0.0.1 server 50001 db2 catalog database tp2 
    atnode 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. 連接遠程數據庫

  1. db2 connect to tp2 user db2inst2 using *** db2 connect to tp3 user db2inst3 using *** db2 terminate  

同樣的方法在 db2inst2 和 db2inst3 上編目相應的節點和數據庫信息。使每個實例都能訪問其他兩個實例上的數據庫。

為了方便復制操作,通常會在各個數據庫上創建相同的模式和復制表。

用清單 3 所示的方法在 TP1、TP2、TP3 上給 qrepladm 用戶授權並創建 DB2 QREPLADM.S_TAB 表

清單 3. 授權及建表

  1. 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 上,定義名叫 DB2 QM1 的 MQ manager。如果 QM1 已經存在,按照清單 4 所示的命令刪除舊的 QM1:

清單 4. 停止並刪除隊列管理器

  1. endmqm QM1 dltmqm QM1  

然後按照清單 5 所示的方法來創建 QM1

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved