Closed 603183892 closed 1 year ago
能否详细描述下你的需求,发布或者变更应用为什么会数据遗漏?
需求描述: 场景:mysql源端增加了新表需要在您开发应用中修改toml进行添加,在添加的时候如果生成不停止的话新表数据时无法及时写入。如果修改toml文件后,重新启动应用的话在不停生成的情况会造成其他表数据遗漏 期望:可在配置文件中增加,启动时可以配置binlog的点位或者更友好的方式根据时间读取mysql binlog 点位将重启应用造成的部分数据没有同步回溯到停止应用的时间。
不知道我的需求是否说明白了 还有一个可能就是您开发的应用所在的服务器重启了,重启后生产上面的部分数据或丢失无法及时同步
重启go-mysql-starrocks不会导致数据遗漏,因为有一个_${name}-pos.info同步点位记录文件,用于记录当前已经同步的gtid值。 重启应用还是服务器,只需再次启动go-mysql-starrocks即可,其会从点位记录文件中找到gitd值接续同步(如果binlog还存在的话)
嗯,我这边做了两个验证, 1、在mysql表中增加了一个字段,并修改里面的内容,没有及时在starrocks中添加,在starrocks添加之后这个值我想通过回溯的方式将值写入到starrocks。 2、在mysql中增加一个表,没有停生产,后面调整go-mysql-starrocks 配置,增加新表,在重启,后发现表中有些数据比生产中少也想通过回溯点位的方式将数据在重新推送下
对于1 和 2,目前可以通过修复点位记录文件的gtid值(修改前先停止go-mysql-starrocks),修改为更早时间的gtid值(gtid值需要解析binlog,不是很方便获取)
3 没有发现这个问题,主要还是1、2中的问题。我是提一个建议,如果能让用户自己录入时间,或者点位,这样在生产上面运行的话就比较放心。希望能在后期版本迭代中进行增加。go语言不是很擅长提供不了代码支持。只能在使用方面提供下需求。感谢回复
考虑增加一个start-gtid参数,指定初次监听开始的gtid点位;注意:当_xxx-pos.info点位文件内容存在时,此选项不生效
感谢!!!
你好,使用了下应用非常方便,提一点建议 能否实现mysql binlog 根据点位或者时间进行回溯 因为在发布或者变更改应用的时候会出现数据遗漏的情况