分类:
2008-04-24 10:18:03
在控制中心左边树型列表中数据库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