我有一个使用 MySQL 5.0 的主从设置。我非常频繁地写入主机,而从机仅用于备份目的(无显式写入)。
在我当前的配置中,从数据库通过 VPN 自动由 MySQL 与主数据库同步。但是如果由 Master 组成的系统(win 7)由于某种原因宕机,重启后同步不会从上次同步的记录继续。相反,我必须停止两端的服务,删除并重新创建配置文件,将备份的 sql 从主服务器移动到从服务器并重新启动同步。每当我的系统因任何原因宕机时,都必须执行所有这些操作。
是否有可能避免这种情况,以便每当主系统出现故障时,同步会像往常一样再次开始?
不。
复制将在 VPN 宕机后继续存在,但 master 主机的崩溃不会可靠地刷新 master 的二进制日志,因此在重新启动时无法保证 master 的 Binlog Dump 线程不会将相同的事件发送到 slave 的 I/O 线程.
您应该找到一个涉及主服务器保持在线的解决方案。如果做不到这一点,您可能会让从属服务器短时间运行,在此期间主服务器不太可能崩溃,这样您就可以减少服务器在日志传输期间崩溃的可能性,但这不是一个可靠的解决方案。
如果正常关机,应该不会出现这个问题。
调查您的 MySQL 服务是否在关机时正确停止,并尝试查看如果您在关机前手动停止 MySQL 会发生什么。
还要检查通过 VPN 从主机向从机发送数据是否会导致数据损坏。这在 MySQL 5.0 中很容易发生,因为没有为将 binlog 传输到 slave 完成校验和。我建议升级到 MySQL 5.5,因为它可以更好地处理复制损坏。