现在有种情况,比如主库一共要插入100W条,插入到50W的时候 ,canal挂了。然后主库插入到70W的时候,主库也挂了,之前我配置了canal的备库信息,把canal启动,canal自动连到了备库上,这时候开始抽取的时间点是50W的位置还是70W的位置?
原提问者GitHub用户ZSH9053
canal的位点记录是以事务为边界,切换到备库是50w的位置。 ps. 如果主库异常crash后导致备库binlog丢失,这个canal也同样拿不到丢失的数据
原回答者GitHub用户agapple
在Canal的主备切换场景中,如果Canal挂了,备库自动接替Canal的工作,但是由于备库在Canal挂掉时的数据没有同步完全,因此启动备库后,Canal会从上次同步完成的位置开始同步数据。
在您的情况下,Canal挂掉时,主库已经插入了70W条数据,备库的数据同步进度可能只到了50W或者其他的位置。当您启动备库时,Canal会从上次同步完成的位置开始同步数据,并且不会立即从主库的70W位置开始同步。因此,您需要注意数据同步的进度,并且确保数据没有丢失或者重复同步。
为了避免这种情况的发生,建议您在Canal挂掉时尽快恢复Canal,以便能够及时同步数据。同时,还可以考虑使用Canal的高可用方案,例如Canal Server的集群模式,以保证Canal的高可用性和可靠性。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。