GreatSQL社区

搜索

[待回复] binlog重复应用引起主从数据不一致问题

186 1 2024-7-18 16:18
最近在做数据库出拆分迁移。背景如下:


原有的mysql实例用的是阿里云的PolarDB,现在需要将数据库拆分到阿里云的rds集群上,数据同步用的是阿里的DTS,全量同步+增量实时同步,业务应用进行数据源切换即可。

原来有一个集中从库,多对一主从同步集中到自建的ecs服务器上的mysql实例上,拆分迁移过程当中,需要修改复制通道主库地址,现在的操作是在DTS同步链路创建之前,rds空实例记录位点信息,等待应用切换之后,从起始位点同步全量数据,数据量较大时候出现很大的延迟。

业务要求不停机迁移,集中从库没有办法确认数据的具体位点信息,所以每次迁移集中从库都得全量同步数据。

现在有一个想法,集中从库是否可以不拉取全量数据,先记录rds的位点信息,此时rds已经完成DTS全量同步,增量实时同步中,rds位点可能会随时变化,先不管,此时直接将集中从库切换到rds上,集中从库的数据比rds记录位点数据要新,一直在同步旧的主库PolarDB的数据,直接change master到rds上,忽略1032,1062这样的报错信息,是否可以保证数据一致性。

直接change master到rds上,位点信息不准确,重复应用binlog是否会出现数据不一致的问题,一直没有找到会引起数据不一致的操作场景。

PolarDB版本:5.7.28
rds版本:5.7.44
集中从库版本:5.7.28
binlog为row格式 ,binlog_row_image 是FULL



全部回复(1)
yejr 2024-7-19 09:18:19
时使用 mysqldump --single-transaction 先做一次全量的一致性备份,之后再用binlog增量同步呢
风云

1

主题

0

博客

2

贡献

新手上路

Rank: 1

积分
3
QQ

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

社区公众号
社区小助手
QQ群
GMT+8, 2024-9-8 10:53 , Processed in 0.020343 second(s), 15 queries , Redis On.
快速回复 返回顶部 返回列表