Debezium系列之:记录一次debezium采集tdsql-c数据库数据丢失原因的排查
一、背景
- debezium采集tdsql-c数据库,偶尔会出现数据丢失的情况,出现多次后决定整个链路排查定位问题
二、排查数据丢失时间段数据采集情况
- 发现数据丢失时间段,出现了gtid不连续的情况,表明有部分binlog文件没有采集
- 最开始定位是tdsql-c数据库从库与主库出现数据同步问题,理论上数据库开启了gtid,数据库主从之间会按照gtid顺序同步数据,与腾讯沟通后否认了这个猜测
- 再次排查时间丢失时间段的offset情况,发现了offset值为null的情况,怀疑是后台自动化处理connector异常脚本写入了null值,在connector出现binlog文件不存在的情况下,会把connector的offset值设置为null,排查到采集出现问题的时间点重新提交了connector。针对这个情况手动提交connector,发现再次提交的connector立马挂掉了,出现了如下报错
io.debezium.DebeziumException: The connector is trying to read binlog starting at SourceInfo [currentGtid=null, currentBinlogFilename