Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103677829
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-04-24 10:18:03

 出处:dev.21tx.com 
6.定义复制源

在控制中心左边树型列表中数据库DB_S下选中表,右边列表列出了所有的表,用右键点击表TAB_1_S,在弹出的菜单中选中定义为复制源—>定制,接受默认选项,点击确定,弹出现在运行还是保存窗口,接受默认的保存设置,点击确定,弹出选择系统名窗口,选择数据库所在系统,点击确定,弹出文件浏览器,把当前目录定位到C:\示例,在路径中输入文件名tab_1_replscr.sql,点击确定。保存成功后可以用文本编辑器查看tab_1_replscr.sql中的内容,可以发现里边主要是生成CD表,和注册复制源(通过往表ASN.IBMSNAP_REGISTER中插入记录)的SQL语句。

7.运行复制源

用右键点击控制中心左边树型列表中数据库DB_S下的复制源,在弹出菜单中选择运行SQL文件…,弹出选择系统名窗口,选择数据库所在系统名,确定,在弹出的文件浏览器中选择tab_1_replscr.sql后确定,如果成功,用右键进行刷新,将显示出新定义的复制源TAB_1_S。

8.将捕捉程序与源数据库绑定(注意:必须转跳到DB2的SQLLIB\bnd目录下)

CD C:\Program Files\SQLLIB\bnd
DB2 CONNECT TO DB_S USER UserName USING Password
DB2 BIND @CAPTURE.LST ISOLATION UR BLOCKING ALL
DB2 BIND @APPLYUR.LST ISOLATION UR BLOCKING ALL 
DB2 BIND @APPLYCS.LST ISOLATION CS BLOCKING ALL

9.创建目标数据库

DB2 CREATE DB DB_T

10.定义复制预订

在控制中心左边树型列表中数据库DB_S下选中复制源,右边列表列出了所有的复制源,用右键点击复制源TAB_1_S,在弹出的菜单中选中定义预订…,在预订名中输入TAB_1_SUB,目标服务器中选择DB_T,应用限定符中输入TAB_1_QUAL,在列表中选中创建表。

点击高级…,弹出高级预订定义窗口,点击目标列标签页,在COL_1列中选中主关键字,切换到行数标签页,输入过滤条件COL_1 <> '00',确定返回定义复制预订窗口。

点击SQL…,弹出SQL窗口,点击添加…,在SQL语句或调用过程中输入DELETE FROM ASN.IBMSNAP_APPLYTRAIL WHERE LASTRUN < (CURRENT TIMESTAMP - 7 DAYS),在SQLSTATE中输入02000,点击添加,以接受” row not found”错误,确定返回SQL窗口,确定返回定义复制预订窗口。该步可忽略,这里主要是演示如何在复制过程中根据需要执行一些SQL语句,此处示例的DELETE语句主要是删除部分应用跟踪信息,已防止该表过于庞大,影响性能。

点击计时…,弹出预订计时窗口,将分钟改为1,小时改为0,确定返回定义复制预订窗口。

确定后弹出现在运行还是保存窗口,指定存储预订控制信息的数据库为DB_T后,点击确定,弹出选择系统名窗口,选择数据库所在系统,点击确定,弹出文件浏览器,把当前目录定位到C:\示例,在路径中输入文件名tab_1_sub.sql。保存成功后可以用文本编辑器查看tab_1_sub.sql中的内容,可以发现里边主要是生成目标表(如果选中了创建表的话),和注册复制预订(通过往控制表中插入记录)等的SQL语句。

12.运行复制预订

用右键点击控制中心左边树型列表中数据库DB_S下的复制预订,在弹出菜单中选择运行SQL文件…,弹出选择系统名窗口,选择数据库所在系统名,确定,在弹出的文件浏览器中选择tab_1_sub.sql后确定,如果成功,用右键进行刷新,将显示出新定义的复制预订TAB_1_SUB。

13.将应用程序与目标数据库绑定(注意:必须转跳到DB2的SQLLIB\bnd目录下)

CD C:\Program Files\SQLLIB\bnd
DB2 CONNECT TO DB_T USER UserName USING Password
DB2 BIND @APPLYUR.LST ISOLATION UR BLOCKING ALL 
DB2 BIND @APPLYCS.LST ISOLATION CS BLOCKING ALL

14.创建密码文件

打开文件夹C:\示例,新建一个文本文件,在文件中输入以下两行(注意:用户名和密码区分大小写)

SERVER=DB_S  USER=UserName  PWD=Password
SERVER=DB_T  USER=UserName  PWD=Password

将文件保存为tab_1_qual.pwd

(命名约定:密码文件命名为应用限定符.pwd)

15.启动捕捉程序(注意:必须转跳到C:\示例目录下)

CD C:\示例
ASNCCP DB_S COLD NOPRUNE

提示:该命令中参数COLD指定的是冷启动,它会将CD表和UOW表中的内容删除,一般只有在刚建立起复制环境时使用,而如果在复制环境已经启动,但又添加新的复制源,一般指定WARM参数采用热启动。

捕捉程序启动后,控制台不会有任何提示,但系统会自动创建一个*.ccp文件,以跟踪捕捉程序的运行(相当于日志文件),可用文本编辑其查看其内容。捕捉程序启动后只是简单的做一些初始化工作,而不会捕捉任何更改信息,除非你启动应用程序且应用程序完成了初始化的全更新拷贝。

16.启动应用程序(注意:必须转跳到C:\示例目录下,应用限定符区分大小写)

CD C:\示例
ASNAPPLY TAB_1_QUAL DB_T

应用程序启动后,控制台不会有任何提示,但系统会自动创建tab_1_qual.app文件,以跟踪捕捉程序的运行(相当于日志文件),可用文本编辑其查看其内容。也可通过查看数据库DB_T中的应用跟踪表ASN.IBMSNAP_APPLYTRAIL来跟踪应用程序执行的一些信息。

测试复制环境

至此,复制环境启动结束,下面我们通过更新源表来验证复制环境是否正常运行:

1.在源表中插入记录

DB2 CONNECT TO DB_S USER UserName USING Password
DB2 INSERT INTO TAB_1_S ( COL_1, COL_2 ) VALUES ( '00', '00' )
DB2 INSERT INTO TAB_1_S ( COL_1, COL_2 ) VALUES ( '11', '11' )
DB2 INSERT INTO TAB_1_S ( COL_1, COL_2 ) VALUES ( '22', '22' )

插入成功后查看该复制源对应的CD表,会发现对源表的更改被记录了下来

2.在目标表中查看数据是否已同步更新

DB2 CONNECT TO DB_T USER UserName USING Password
DB2 SELECT * FROM TAB_1_S

停止捕捉、应用程序

ASNCMD DB_S STOP
ASNASTOP TAB_1_QUAL

参考资料:DB2信息中心-书籍-Replication Guide and Reference

阅读(760) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~