为了满足监管和企业发展的需求,我们的核心业务系统需要实现对资金流水进行实时监控并对数据进行实时的异地保存,所以我们迫切需要一种实时数据复制和同步的方案来解决目前遇到的问题。经过对比测试选择了IBM的CDC数据实时复制和同步解决方案。由于CDC软件由厂商进行部署,所以本文的重点在于讲解在上线CDC后实施数据库变更操作的思路和方法而非安装指导之类的问题。
OK,下面我们就来看一下在CDC环境下实施数据库变更的思路是怎样的?
具体如下所示:
一、在业务正常停止以后,停止预定
$ ./dmendreplication -I bankdb -s mytest
Command for mytest successfully executed.
二、在源端按原来的表结构变更步骤,修改表结构。注意在目标端也需要同时执行相同的修改。
db2 "rename table test1 to test1_bak”
db2 "drop table test1”
db2 ”create table test1(a int,b int)”
db2 "insert into test1 (a,b) select * from test1_bak”
注意事项:
1、在原表上有CDC配置时增加的CAPTURE属性,在创建新的同名表以后,需要在源端修改新表,以启用CAPTURE。
#ALTER TABLE "DB2INST1"."TEST1" DATA CAPTURE CHANGES INCLUDE LONGVAR COLUMNS;
2、重新映射源表与目标表的列关系,通过management console中,更新表结构,并根据需要调整列的镜像关系。
三、在源端执行下述命令,以标记两端的数据同步状态,并且激活变更表的镜像状态
$ ./dmmarktablecapturepoint -I bankdb -s BANKDBDR -t DB2INST1.TEST1
Command for DB2INST1.TEST1 successfully executed.
四、启动预定继续执行数据复制
$ ./dmstartmirror -I bankdb -c -s mytest
Command for mytest successfully executed.
一、在业务正常停止以后,停止预定
$ ./dmendreplication -I bankdb -s mytest
Command for mytest successfully executed.
二、在源端按原来的表结构变更步骤,修改表结构。注意在目标端也需要同时执行相同的修改。
db2 "rename table test1 to test1_bak”
db2 "drop table test1”
db2 ”create table test1(a int,b int)”
db2 "insert into test1 (a,b) select * from test1_bak”
注意事项:
1、在原表上有CDC配置时增加的CAPTURE属性,在创建新的同名表以后,需要在源端修改新表,以启用CAPTURE。
#ALTER TABLE "DB2INST1"."TEST1" DATA CAPTURE CHANGES INCLUDE LONGVAR COLUMNS;
2、重新映射源表与目标表的列关系,通过management console中,更新表结构,并根据需要调整列的镜像关系。
三、在源端执行下述命令,以标记两端的数据同步状态,并且激活变更表的镜像状态
$ ./dmmarktablecapturepoint -I bankdb -s BANKDBDR -t DB2INST1.TEST1
Command for DB2INST1.TEST1 successfully executed.
四、启动预定继续执行数据复制
$ ./dmstartmirror -I bankdb -c -s mytest
Command for mytest successfully executed.
附操作清单:
|
执行主机
|
执行用户
|
|
停止预定
|
源主机
|
CDC安装用户
|
./dmendreplication -I bankdb -s BANKDBDR
|
结构变更
|
源、目标
|
db2inst1
|
|
源表增加capture属性
|
源主机
|
db2inst1
|
ALTER TABLE "DB2INST1"."TEST1" DATA
CAPTURE CHANGES INCLUDE LONGVAR COLUMNS;
|
映射源表与目标表
|
Console
|
console用户
|
|
标记两端的数据同步
|
源主机
|
CDC安装用户
|
./dmmarktablecapturepoint -I bankdb -s BANKDBDR -t DB2INST1.TEST1
|
启动预定
|
源主机
|
CDC安装用户
|
./dmstartmirror -I bankdb -c -s BANKDBDR
|
The end~~~
阅读(6501) | 评论(0) | 转发(0) |