事务级数据比对服务
源端支持数据库类型:LOGMNR模式
发布节点创建临时表
发布节点配置临时表存放信息
在bus_push_db_parameter配置参数auto_compare_table为ZCBUS.AUTO_COMPARE_TBL,注意表名大小写。源端Orcale创建表语句,表结构严格参考如下信息:
CREATE TABLE ZCBUS.AUTO_COMPARE_TBL (
table_schema varchar2 (128),
table_name varchar2 (128),
scnt number,
STATUS INT,
create_time date,
update_time date,
PRIMARY KEY (table_schema, table_name)
);
- 生产操作SQL逻辑
delete from ZCBUS.AUTO_COMPARE_TBL where table_schema='SAPSR3' and table_name='BKPF';
INSERT INTO ZCBUS.AUTO_COMPARE_TBL(table_schema,table_name,scnt,status,create_time,update_time) values('SAPSR3','BKPF',0,0,sysdate,sysdate);
commit;
update ZCBUS.AUTO_COMPARE_TBL set scnt=(select count(1) from SAPSR3.BKPF),status=1,update_time=sysdate where table_schema='SAPSR3' and table_name='BKPF';
commit;
说明:增量分析到ZCBUS.AUTO_COMPARE_TBL的insert和update操作,会分别形成两条控制信息发送到ZC01.TB01的topic里。
- 客户端订阅在bus_client_main_control_properties里设置参数auto_compare=1时,在订阅时遇到这两种控制信息,会自动进行比对,比对结果插入到bus_client_auto_compare_result表中。
CREATE TABLE `bus_client_auto_compare_result` (
`id` INT (11) NOT NULL AUTO_INCREMENT,
`customerid` INT (11) NOT NULL,
`tableid` INT (11) NOT NULL,
`objectid` INT (11) NOT NULL,
`status` INT (11) NOT NULL DEFAULT '0' COMMENT '0 - 未开始 1 - 比对开始 2 - 完成比对',
`TargetTableSchema` VARCHAR (128) NOT NULL,
`TargetTableName` VARCHAR (128) NOT NULL,
`scnt` BIGINT (20) NOT NULL DEFAULT '0' COMMENT '源端记录数',
`tcnt` BIGINT (20) NOT NULL DEFAULT '0' COMMENT '目标端记录数',
`source_starttime` datetime DEFAULT NULL COMMENT '源端查询记录数起始时间',
`source_endttime` datetime DEFAULT NULL COMMENT '源端查询记录数完成时间',
`target_endtime` datetime DEFAULT NULL COMMENT '目标端查询记录数完成时间',
`update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `customerid` (`customerid`, `objectid`)
)
文档更新时间: 2022-09-26 21:01 作者:阿力