MySQL 8.4 发行说明
您可以使用 STOP REPLICA
和 START REPLICA
语句来停止和启动副本上的复制。
要停止从源处理二进制日志,请使用 STOP REPLICA
mysql> STOP REPLICA;
当复制停止时,复制 I/O(接收器)线程停止从源二进制日志读取事件并将其写入中继日志,而 SQL 线程停止从中继日志读取事件并执行它们。您可以通过指定线程类型来单独暂停 I/O(接收器)或 SQL(应用程序)线程
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(接收器)线程继续从源读取事件,但不会执行它们。这使得副本在重新启动 SQL(应用程序)线程时更容易追赶。
仅停止接收器线程使中继日志中的事件能够由应用程序线程执行,直到中继日志结束。当您想暂停执行以追赶已经从源接收到的事件,当您想对副本执行管理操作但也要确保它已处理到特定点的所有更新时,这可能很有用。此方法还可用于在对源执行管理操作时暂停副本上的事件接收。停止接收器线程但允许应用程序线程运行有助于确保在重新启动复制时不会出现大量的事件积压等待执行。