MySQL 8.3 Release Notes
您可以使用 STOP REPLICA
和 START REPLICA
语句在副本上停止和启动复制。
要停止从源 binary log 的处理,请使用 STOP REPLICA
:
mysql> STOP REPLICA;
当复制停止时,复制 I/O(receiver)线程停止从源 binary log 读取事件并将其写入中继日志,而 SQL 线程停止从中继日志读取事件并执行它们。您可以通过指定线程类型来单独暂停 I/O(receiver)或 SQL(applier)线程:
mysql> STOP REPLICA IO_THREAD;
mysql> STOP REPLICA SQL_THREAD;
要重新启动执行,请使用 START REPLICA
语句:
mysql> START REPLICA;
要启动特定线程,请指定线程类型:
mysql> START REPLICA IO_THREAD;
mysql> START REPLICA SQL_THREAD;
对于仅通过处理来自源的事件进行更新的副本,停止仅 SQL 线程可能很有用,如果您想执行备份或其他任务。在这种情况下,I/O(receiver)线程继续从源读取事件,但它们不会被执行。这使得副本在重新启动 SQL(applier)线程时更容易赶上。
仅停止接收器线程使中继日志中的事件被 applier 线程执行,直到中继日志结束。这在您想暂停执行以赶上来自源的事件、在副本上执行管理或确保副本已经处理到特定点时非常有用。这种方法也可以用于暂停副本上的事件接收,同时在源上执行管理。停止接收器线程但允许 applier 线程运行有助于确保在重新启动复制时没有大量的事件积压。