之前文章已经讲过RTSync相关的内容,本章将略过基础说明,直接提供新功能的使用方法。RTSync从8.6.28.0版本开始新增了capture组件记录流水日志功能。
该功能主要目的是通过记录指定天数的同步过的日志关键信息,来追朔目标端在数据丢失或不一致的情况下capture组件是否同步过该数据的问题,用于定位问题原因及自证。
其工作原理也很简单,开启该功能后,RTSync capture组件在确保增量数据成功发送到kafka后记录流水信息。流水信息格式举例如下:
20220428172136 20220428172036 1 db.tb i pk
说明如下:
20220428172136 :记录该条流水信息发生的时间
20220428172036 :该条数据提交时间
1 :跟RTSync配置有关,代表第一个任务
db.tb:该行数据所属的库表
I:代表是insert数据。(支持u:update,d:delete)
pk:主键信息,如果是联合主键则是逗号分割的多个值
通过如上信息我们能够匹配到在某个时间段同步过的数据信息。
开启方式如下:
1)修改config_task.xml中sourcedb节点,增加或者修改属性为如下值:
captureLog=”true”.
注:默认是不开启的
2)日志内容采用log4j2组件记录,查看reader_log4j.xml
重点查看如下内容:
<rollingFile name=”CaptureOper” …>
默认情况下我们已经配置好了日志的记录周期,归档模式,以及路径信息。默认针对一个source-target任务情况下,我们不需要额外配置修改就能完美支持capture组件记录流水日志了
针对流水日志记录,我们支持修改自定义配置规则,在多个source-target任务下需要配置修改多个CaptureOper,具体修改规则及方式会在后续章节介绍。