Documentation Home

17.1.7.2 在副本上暂停复制

STOP REPLICA您可以使用and START REPLICA语句 停止和启动副本上的复制 。从 MySQL 8.0.22 开始, STOP SLAVESTART SLAVE推荐使用,并且 STOP REPLICA可以 START REPLICA使用。

要停止处理来自源的二进制日志,请使用 STOP REPLICA

mysql> STOP SLAVE;
Or from MySQL 8.0.22:
mysql> STOP REPLICA;

当复制停止时,复制 I/O(接收方)线程停止从源二进制日志中读取事件并将它们写入中继日志,SQL 线程停止从中继日志中读取事件并执行它们。您可以通过指定线程类型单独暂停 I/O(接收方)或 SQL(应用程序)线程:

mysql> STOP SLAVE IO_THREAD;
mysql> STOP SLAVE SQL_THREAD;
Or from MySQL 8.0.22:
mysql> STOP REPLICA IO_THREAD;
mysql> STOP REPLICA SQL_THREAD;

要再次开始执行,请使用以下 START REPLICA语句:

mysql> START SLAVE;
Or from MySQL 8.0.22:
mysql> START REPLICA;

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

mysql> START SLAVE IO_THREAD;
mysql> START SLAVE SQL_THREAD;
Or from MySQL 8.0.22:
mysql> START REPLICA IO_THREAD;
mysql> START REPLICA SQL_THREAD;

对于仅通过处理来自源的事件来执行更新的副本,如果您想执行备份或其他任务,则仅停止 SQL 线程会很有用。I/O(接收方)线程继续从源中读取事件,但不执行。这使副本在您重新启动 SQL(应用程序)线程时更容易赶上进度。

仅停止接收线程可以使应用程序线程执行中继日志中的事件,直到中继日志结束为止。当您想要暂停执行以赶上已从源接收到的事件时,当您想要对副本执行管理但又要确保它已处理特定点的所有更新时,这可能很有用。当您对源进行管理时,此方法还可用于暂停副本上的事件接收。停止接收器线程但允许应用程序线程运行有助于确保在再次启动复制时不会有大量积压的事件要执行。