请教一个从库修复的问题
Closed this issue · 5 comments
我用的是 MariaDB 11.4.1。
想要用 orchestrator 搭建一个高可用
我把主库挂了之后,orchestrator自动切换一个从库为主库u3(从库都开了log_slave_updates)
这时候,我手动创建一个全新空白的从库 u2,去同步这个新主库。Slave_IO_Running、Slave_SQL_Running都是Yes。
主库创建新的数据库,u2上也会出现。
但是问题是,
u3已经有的老的数据库一直没出现在u2上。
我上网搜索了一些方案,貌似都是要手工备份老数据库导入,然后修改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 - 同步正常.
对,工具是检测到有1032和1062错误,才开始进行修复不一致数据。
明白,这种不同步有什么好的修复方案吗?
我也到 mariadb 的邮件列表问了,
https://lists.mariadb.org/hyperkitty/list/discuss@lists.mariadb.org/thread/V5P732S73TVMESEOMGR5YIAAD5Q33QDS/
不过还没人回复
明白了,这种不同步有什么好的修复方案吗? 我也到 mariadb 的邮件列表问了, https://lists.mariadb.org/hyperkitty/list/discuss@lists.mariadb.org/thread/V5P732S73TVMESEOMGR5YIAAD5Q33QDS/ 还没人回复
这种情况,你需要用mydumper全量数据导出,然后myloader导入恢复数据,最后change master to进行增量同步复制。
明白,感觉还是有点复杂,这样导入,还需要手工设置MASTER_LOG_POS吗(mariadb11是强制启用了GTID的)
我找到一个工具 https://github.com/toddstoffel/rebuild_slave
核心流程是:https://github.com/toddstoffel/rebuild_slave/blob/master/create_slave.yml
我大概看懂了,正准备给他改写为bash