hcymysql / pt-slave-repair

自动修复MySQL主从同步数据
33 stars 10 forks source link

请教一个从库修复的问题 #2

Closed i18nsite closed 5 months ago

i18nsite commented 5 months ago

我用的是 MariaDB 11.4.1。

想要用 orchestrator 搭建一个高可用

我把主库挂了之后,orchestrator自动切换一个从库为主库u3(从库都开了log_slave_updates)

这时候,我手动创建一个全新空白的从库 u2,去同步这个新主库。Slave_IO_Running、Slave_SQL_Running都是Yes。 主库创建新的数据库,u2上也会出现。 但是问题是, u3已经有的老的数据库一直没出现在u2上。 image

我上网搜索了一些方案,貌似都是要手工备份老数据库导入,然后修改binlog文件和同步位置。 感觉很麻烦,我就想是不是因为我哪儿的参数没配置对,才导致的。 或者有没有什么一键修复的脚本。

我想用pt-slave-repair 尝试修复一下, 但是我发现pt-slave-repair需要数据库的名字(但是我想修复的数据库还不存在) 我尝试直接运行 pt-slave-repair_mariadb ,但是没用

./pt-slave-repair_mariadb -H 127.0.0.1 -P 2002 -u root -p xxx -d i18n
2024-04-07 10:21:36,156 - INFO - 同步正常.
hcymysql commented 5 months ago

对,工具是检测到有1032和1062错误,才开始进行修复不一致数据。

i18nsite commented 5 months ago

明白,这种不同步有什么好的修复方案吗? 我也到 mariadb 的邮件列表问了, https://lists.mariadb.org/hyperkitty/list/discuss@lists.mariadb.org/thread/V5P732S73TVMESEOMGR5YIAAD5Q33QDS/ 不过还没人回复

hcymysql commented 5 months ago

明白了,这种不同步有什么好的修复方案吗? 我也到 mariadb 的邮件列表问了, https://lists.mariadb.org/hyperkitty/list/discuss@lists.mariadb.org/thread/V5P732S73TVMESEOMGR5YIAAD5Q33QDS/ 还没人回复

这种情况,你需要用mydumper全量数据导出,然后myloader导入恢复数据,最后change master to进行增量同步复制。

i18nsite commented 5 months ago

明白,感觉还是有点复杂,这样导入,还需要手工设置MASTER_LOG_POS吗(mariadb11是强制启用了GTID的)

i18nsite commented 5 months ago

我找到一个工具 https://github.com/toddstoffel/rebuild_slave 核心流程是:https://github.com/toddstoffel/rebuild_slave/blob/master/create_slave.yml 我大概看懂了,正准备给他改写为bash