自从它设置以来,我第一次需要重新启动一个只读的 MySQL 复制从站。
我发现这篇关于关闭一个奴隶进行维护的文章(尽管他只是在描述停止mysql
守护进程):
概括来说,程序是:
在mysql
客户端:
STOP SLAVE;
FLUSH TABLES;
从操作系统:
/etc/init.d/mysql stop
我将在此时重新启动,然后在系统启动后:
在mysql
客户端(mysql
守护程序配置为在启动时启动):
START SLAVE;
这看起来对吗?还有什么我应该做的吗?
这看起来是对的。当从站重新启动时,它将从上次中断的地方继续。
我会注意,除非您提供--skip-slave-start选项,否则从站应该自动启动。
在我们的例子中,我们使用的是 AWS RDS Mysql Aurora (5.6)。我们正在迁移到 5.7,并从 5.6 的快照在 5.7 的新集群上设置复制。
引擎大小需要更新,这个问题及其答案成为解决方案重新启动而不丢失复制进度的催化剂(在发出这些命令时,从站比主站晚了几个小时)。
CALL mysql.rds_stop_replication;
CALL mysql.rds_start_replication;
值得注意的是,在完成这个过程之后,slave 确实后来完全赶上了,
show slave status
Master_Log_File最终匹配了show master status
,并且show slave status
Seconds_Behind_Master达到了零值。出于比较目的,以下是该数据库的一些统计信息: