我有一对 MySQL (5.1) 主从复制对,但复制到从属服务器失败。失败的原因是主服务器磁盘空间不足,并且中继日志损坏。主服务器现已恢复在线并正常工作。由于日志中有此错误,因此无法简单地重新启动从属进程。
该服务器有一个 40GB 的 InnoDB 数据库,我想知道让从属服务器重新同步以最大限度地减少停机时间的最快方法是什么。
答案1
您可以尝试使用reset slave
mysql 命令忽略当前日志文件。但是,您应该小心,因为这可能会导致数据丢失/不一致。
我认为安全的方法是从头开始重建复制,以确保没有数据丢失/不一致。
复制数据目录比使用导出数据库要快得多mysqldump
。
首先,使用以下命令锁定表:
> FLUSH TABLES WITH READ LOCK;
然后,复制数据目录。因此,停机时间将是复制数据目录的时间。有关更完整的指南,请查看这。您需要复制数据目录,而不是使用mysqldump
。您需要在将数据文件/文件夹复制到从属服务器后修复权限。
答案2
如果您想在从服务器上重新开始(我认为这是最安全的),请使用带有 --master-data 开关的 myqldump。您的转储现在将包含 CHANGE MASTER TO MASTER_LOG_FILE 和 MASTER_LOG_POS。将转储加载到从服务器上,一切就绪。