节点用途 | IP | 平台 | Instance | 数据名 | 版本 | 补丁版本 |
主节点 | 10.222.222.233 | winxp | db2 | PRIDB | 8.2 | FIXPACK 14 |
从节点 | 10.222.222.111 | winxp | db2 | STDDB | 8.2 | FIXPACK 14 |
注:本文将仅在主节点上做配置完成复制(在从节点上做配置也是可以的)
在主节点上创建一张测试表TEST
Create table db2admin.test(id int not null,name char(10))
Alter table db2admin.test add constraint pk_test primary key(id)
插入两条测试记录
Insert into test values(1,’test1’)
Insert into test values(2,’test2’)
注:表必须要有主键
[@more@]1 创建catalog连接信息
l 通过图形界面
在控制中心 -》所有数据库-》添加数据库-》选择主机(选择从节点)-》搜索-》
l 通过命令行
DB2 CATALOG TCPIP NODE STDND REMOTE 10.222.222.211 SERVER 50000
DB2 CATALOG DATABASE STDDB AT NODE STND
这样从节点上的数据库stddb就被catalog到本地了
加完之后最好重启一下机器。(可能是由于windows的原因,配置过程中发现老是没刷新)
2 创建capture control server和apply server
在主节点上打开复制中心,关掉向导
l 为主节点创建capture control server
SQL复制-》定义-》capture控制服务器-》右键选择创建capture控制服务器-》快速
-》选择服务器-》PRIDB
下一步-》下一步-》确定-》确定
l 为从节点创建capture control server和apply control server
SQL复制-》定义-》capture控制服务器-》右键选择创建capture控制服务器-》快速
-》选择服务器-》STDDB->选择以上两者->下一步-》下一步-》确定-》确定
注:本手册仅为试验用,到具体的项目时,上面的每一步中选项要根据业务量、复制的表的数目都来设定。
3 改为归档模式
l 修改PRIDB
复制中心-》SQL复制-》定义-》capture控制服务器->PRIDB->右键选择启用数据库以进行复制
将会修改一个参数LOGRETAIN=recovery ,并进行一次全备份
里面步骤里面只有一个需要操作:指定备份的位置
l 修改STDDB
复制中心-》SQL复制-》定义-》capture控制服务器->PRIDB->右键选择启用数据库以进行复制
4 注册源表
复制中心-》SQL复制-》定义-》capture控制服务器->PRIDB->Capture模式->ASN->注册的表-》右键选择注册表->根据条件选择到TEST表
注意:要把从副本目标表捕获更改选项去掉
确定
5 创建预订集
复制中心-》SQL复制-》定义-》apply控制服务器-》STDDB->右键选择创建预订集
l 集信息
集合名自己定义
Apply限定符自己定义
Capture 控制服务器别名选择 PRIDB
目标服务器别名选择 STDDB
选择激活预订集
l 源到目标的映射
选择第二个tab
添击添加,从里面选择TEST后确定,得到界面如下:
将目标类型从用户副本改成副本,然后将capture模式改成ASN,得到界面如下:
l 时间表:
选择刷新的时间间隔
为试验方便,选择连续的(这样刷新比较快一点)
点击确定
这样就建立了从源库PRIDB上的db2admin.test表到目标库STDDB上的db2admin.tgtest表的复制。
6 创建密码文件
在主节点上:
创建一个目录用于存放密码文件及以后运行的日志
MKDIR c:db2rep
CD c:db2rep
初始化密码文件:
ASNPWD INIT USING asnpwd.aut
分别添加两个库的密码进去
ASNPWD ADD ALIAS PRIDB ID db2admin PASSWORD db2admin using asnpwd.aut
ASNPWD ADD ALIAS STDDB ID db2admin PASSWORD db2admin using asnpwd.aut
7 启动CAPTURE和apply程序
在主节点上,执行db2cmd打开3个db2cmd窗口,每个窗口分布执行:
1)
CD c:db2rep
ASNCAP CAPTURE_SERVER=PRIDB PWDFILE=asnpwd.aut
2)
CD c:db2rep
ASNCAP CAPTURE_SERVER=STDDB PWDFILE=asnpwd.aut
3)
CD c:db2rep
ASNAPPLY APPLY_QUAL=QUAL1 CONTROL_SERVER=STDDB PWDFILE=asnpwd.aut
这时候,数据首先是完全刷新到从节点的TGTEST表,然后,两边的修改会不断的刷新到对方。
8 其他注意点
1) 补丁必须要打到12以上,我原先用的是fix7,结果花了两天时间却怎么也无法双向刷新,后来请教DB2工程师,她那边补丁打到12以上说是可以的,我这边打到12后果然可以了:),但随后就很郁闷了,我又下载了fix14(最新的补丁),结果发现同样的步骤确在两台机器上做怎么也复制不成功了,但在一台机器上两个数据库之间是可以的,难道最新的补丁又有问题? 建议上线之前,先用最新补丁试验一下,如果不行再换低的试试。
2) 按照手册上说,capture跟apply程序可以用复制中心启动,结果发现有很多莫名其妙的问题,晕,后来在网上看,别人也是发现同样的问题,所以最好用命令去做。
3) 要进行复制的表,必须是有主键的(可能唯一索引也可以,没有试过)
4) 如果中间有什么意外要删掉重建的话,按照下面步骤去做:
首先在复制中心,把能删掉的都删掉,这时候数据库里面会仍然剩下许多IBM_SNAP开头的复制表及CD开头的日志捕捉表或者TG开头的目标表,将这些表统统删掉,然后将ASN模式删掉,最后将由于复制引起的所有表空间删掉
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7837534/viewspace-891665/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7837534/viewspace-891665/