我已经看到只有一个从属服务器连接到主数据库时,此post可以重新同步一个从属数据库。

如果我很好理解,当我们只需要在一批从属数据库中仅重新同步一个从属数据库时,这种解决方案并不是最佳解决方案。

有没有一种方法可以执行此操作,而不必重新同步连接到主服务器的所有从属DB?
我想RESET MASTER会影响所有从属DB的状态,并导致重新同步所有它们。

谢谢您的帮助

干杯

最佳答案

我找到了使用这些mysqldump选项的解决方案,以避免使用RESET MASTER方式:

mysqldump -p --skip-lock-tables --single-transaction --flush-logs --hex-blob --master-data=2 <dbname> > /tmp/<dbname>.sql

这样,主日志箱和位置不会更改,而只会添加到文件.sql的顶部。

如果您设置master-data = 2,它们将在文件中被注释

如果您设置master-data = 1,则它们不会在文件中被注释

将转储放在从属主机上后,您可以重置从属,导入转储,然后使用转储文件顶部指示的值运行mysql命令change master to MASTER_LOG_FILE='mysqld-bin.xxxxxxx',MASTER_LOG_POS=xxxx;

干杯

10-04 18:55