我已经看到只有一个从属服务器连接到主数据库时,此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;
。
干杯