根据条件修复的功能:
1.比对程序可以输出修复的where条件到bus_client_op_check_table_detail表的repaircondition字段,如果修复条件超过1M的话,repaircondition填空
2.增量发布修复的表bus_push_repair_tb增加condition字段,可以填入修复条件,如果填入修复条件的话,优先用修复条件进行修复,忽略file_path修复文件

ALTER TABLE `bus_client_op_check_table_detail` ADD COLUMN `repaircondition` LONGTEXT NULL COMMENT '修复条件' AFTER `repairpath`;
ALTER TABLE `bus_push_repair_tb` ADD COLUMN `condition` LONGTEXT NULL COMMENT '修复条件' AFTER `file_path`;
UPDATE `bus_cluster_version` SET `back_version` = '10';

手动验证:
bus_client_op_check_table_detail表产生的repaircondition修复条件,拷贝到bus_push_repair_tb表中的condition,修改bus_push_repair_tb表中的status为1,根据条件修复功能开启。

注:
1、数据修复功能,需要比对内容,比对记录数修复功能不生效,根据内容比对配置如下;

2、数据修复功能,要求zcbus real和compare进程在同一主机上运行;
3、内容比对完成后,如有差异比对进程会产生bsd文件(默认路径:ZCBUS_HOME/cache/compare/订阅节点ID/child[0-4]),zcbus real进程修复时,会引用产生的bsd文件;
file_path修复:

修复条件修复:

4、如果修复条件超过1M的话,bus_client_op_check_table_detail表的repaircondition字段填空。
记录数差异10万,repaircondition字段为空:

5、数据库连接配置成公网地址的话,内容比对会很慢(100万记录,差异10万,40分钟还处于导出记录阶段):

设置成内网地址,很快就比对完成了(100万记录,差异10万,总用时122秒):

文档更新时间: 2021-07-21 01:49   作者:周风磊