16.1.7.2 暂停副本服务器上的复制

您可以使用STOP SLAVESTART SLAVE语句停止并在副本上启动复制。

要停止从源处理二进制日志,请使用STOP SLAVE

mysql> STOP SLAVE;

复制停止后,复制 I/O 线程停止从源的二进制日志中读取事件并将其写入中继日志,而复制 SQL 线程停止从中继日志中读取事件并执行它们。您可以通过指定线程类型分别暂停复制 I/O 和 SQL 线程:

mysql> STOP SLAVE IO_THREAD;
mysql> STOP SLAVE SQL_THREAD;

要再次开始执行,请使用START SLAVE语句:

mysql> START SLAVE;

要启动特定线程,请指定线程类型:

mysql> START SLAVE IO_THREAD;
mysql> START SLAVE SQL_THREAD;

对于仅通过处理来自源的事件来执行更新的副本,如果要执行备份或其他任务,则仅停止复制 SQL 线程可能很有用。复制 I/O 线程将 continue 从源读取事件,但不会执行事件。这使副本在重新启动复制 SQL 线程时更容易追上。

仅停止复制 I/O 线程即可使复制 SQL 线程执行中继日志中的事件,直到中继日志结束为止。当您想要暂停执行以赶上已经从源接收到的事件,想要对副本执行 Management 但又要确保已将所有更新处理到特定点时,此功能很有用。在对源进行 Management 时,也可以使用此方法在副本上暂停事件接收。停止 I/O 线程但允许 SQL 线程运行有助于确保在再次启动复制时没有大量待执行的事件积压。