将MySQL从属设备移动到新的硬盘驱动器 - 我是否需要mysqld-relay-bin日志?

时间:2012-03-14 22:55:11

标签: mysql replication slave

我正在将MySQL奴隶从一组HD转移到另一组HD。机器的配置使我无法同时在其上同时拥有新旧硬盘。所以我将数据目录rsync到另一台机器上。

当新硬盘上线时,我回想起了数据目录。这很好。

但是,我无法启动复制。这是我得到的错误。

120314  4:23:07 [Warning] Neither --relay-log nor --relay-log-index were used; so replication may break when this MySQL server acts as a slave and has his hostname changed!! Please use '--relay-log=mysqld-relay-bin' to avoid this problem.
120314  4:23:07 [ERROR] Failed to open the relay log '/var/lib/mysqllogs/mysqld-relay-bin.000273' (relay_log_pos 677043943)
120314  4:23:07 [ERROR] Could not find target log during relay log initialization
120314  4:23:07 [ERROR] Failed to initialize the master info structure

我发现了这条评论: https://serverfault.com/questions/61471/moving-a-mysql-slave-to-a-new-host-failed-to-open-the-relay-log

  

如果只是抱怨中继日志,在大多数情况下,他们   如果主人仍然有二进制日志,则是一次性的。您可以   只需在slave上运行CHANGE MASTER TO,它就会刷新现有的   中继日志并重新开始。您无需制作新的副本。

这似乎暗示我不需要这些日志文件。

主机名不会改变。

我的问题:

我需要这些日志文件吗?

如果没有,我需要做什么才能开始复制?它会记得中断的地方吗?

如果我确实需要这些日志文件,还有什么我忘记了吗?

1 个答案:

答案 0 :(得分:4)

我认为您不需要中继bin loge文件来使其工作。它可能还记得中断的地方,您是否尝试过命令mysql>RESET SLAVE;?你应该通过SHOW SLAVE STATUS获得SLAVE的位置;要查看是否还有记忆,然后检查主服务器上的日志文件是否仍然存在,因为只有在设置最大文件大小时才会保留日志文件。但是试试RESET SLAVE;如果你没有,那就是魔法。您可能必须通过在锁定表后立即转储现有服务器数据来开始整个过程​​并执行“SHOW MASTER STATUS”如果您可以选择启动,我建议您不要尝试保存此过程从头开始复制。