暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

金仓KingbaseFlySync 高可用功能-错误处理功能配置与说明

原创 KFS补给站 2024-11-04
233

关键字:

KingbaseFlySync、KFS、同步程序、replicator、高可用、错误处理、flysync.ini

1.功能描述

KingbaseFlySync是一种能够在异构数据平台间实现实时、增量数据同步的产品。replicator在目标端数据入库时,不可避免的会遇到各种入库异常场景(可能是技术人员误操作、软件缺陷等),这些异常可能会导致入库中断,进而影响源端和目标端的数据一致性。
针对此类场景,KingbaseFlySync提供了一种精细化配置错误处理策略的方案(仅覆盖到不同故障的处理策略,不涉及数据的冲突处理):针对DML入库异常,可以设置默认处理策略,也可以设置单表的错误处理策略;不同的表还可以根据错误类型设置不同的处理策略。

2.配置使用方式介绍

A、flysync.ini中配置如下:

property=replicator.applier.dbms.enable_handle_error=true
property = replicator.applier.dbms.failure_policy_file=/home/hes/slavenode/filters-config/failure_policy_code.json

B、配置文件中配置如下:

{
	  //全局的默认处理策略
  "DEFAULT": "STOP",
  //配置public模式下的任意表
  //23505错误采用DISCARD_ROW策略
  //42P01错误采用IGNORE_TRANSACTION策略
  "pulic.*":{"23505":"DISCARD_ROW","42P01":"IGNORE_TRANSACTION"},
  //配置mytest.test表,42703错误采用IGNORE_ROW
  "mystest.test":{"42703":" IGNORE_ROW "}
}

匹配优先级为:
如果配置文件中配置了该表的、指定该类型错误的处理策略,则使用该策略处理;
否则使用默认的全局处理策略

C、KingbaseFlySync支持的策略如下:
STOP : 默认处理方式,遇到错误停止继续入库
IGNORE_ROW : 忽略事务中报错的sql
IGNORE_TRANSACTION :忽略整个事务
DISCARD_ROW :将报错信息打印到日志文件,并跳过报错的SQL
DISCARD_TRANSACTION :将报错信息打印到日志文件,并跳过整个事务
注:日志文件的路径为{$repolicator目录}/ flysync/flysync-replicator/log/{flysync.ini中服务名}/discard.log_0000000001

3.使用示例

本示例中,通过配置错误处理,对public模式下的所有表,如果目标端入库时报主键冲突(错误码:23505),则按照DISCARD_ROW的策略跳过错误;如果目标端入库时报表不存在(错误码:42P01),则按照DISCARD_TRANSACTION策略跳过错误。具体示例截图如下:
A、flysync.ini中配置
图片.png
B、failure_policy_code.json文件配置示例
图片.png
C、输出日志:
图片.png

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论