通过DTS数据同步至PolarDB,哪些情况会导致数据不一致?同步是否需要开启Binlog?
Q: 通过DTS数据同步至PolarDB,哪些情况会导致数据不一致?同步是否需要开启Binlog?
在数据同步过程中可能会出现数据重复或数据不一致的情况,在这个过程中是需要开启Binlog的,具体情况如下:
功能限制
当同步对象为整个库,且库中的触发器(TRIGGER)会更新库内某个表时,可能导致源和目标库的数据不一致;
RENAME TABLE操作可能导致同步数据不一致。例如同步对象只包含某个表,如果同步过程中源实例对该表执行了重命名操作,那么该表的数据将不会同步到目标库。为避免该问题,您可以在数据同步配置时将该表所属的整个数据库作为同步对象。
注意事项
Binlog日志需要开启,并且binlog_format为row、binlog_row_image为full。否则预检查阶段提示报错,且无法成功启动数据同步任务,建议在全量初始化期间,Binlog日志至少保留7天以上,或者等到全量初始化完成后,再清理DTS任务运行后源库产生的Binlog日志;
为保障数据安全,DTS本地只会循环存储源库近24小时或者50 GB的Binlog日志,一旦超出该限制,DTS本地将自动清除所缓存的日志。过早清理源库的Binlog日志,也可能会导致同步任务失败,例如源库的全量初始化数据较多,目标库写入异常等原因,导致全量初始化耗时超过24小时,在该情况下,过早清理源库的Binlog日志,DTS将无法获取到24小时前的Binlog日志从而导致同步任务可能失败
来源:https://mp.weixin.qq.com/s/mVzKqIMJRnsim2OZl_Ygjg
相关文章