Skip to main content

repica_sql_thread_states

以下列表显示了在副本服务器上的复制 SQL 线程的“状态”列中可能看到的最常见状态。

在 MySQL 8.0 中,对仪表名称进行了不兼容的更改。 使用这些仪表名称的监控工具可能会受到影响。 如果被不兼容的更改影响,请将 terminology_use_previous 系统变量设置为 BEFORE_8_0_26 以使 MySQL Server 使用上一个列表中指定的对象的旧版本名称。 这使得依赖旧名称的监控工具能够继续工作,直到可以更新为使用新名称为止。

将 terminology_use_previous 系统变量设置为会话范围以支持单个功能,或将全局范围设置为所有新会话的默认值。 当使用全局范围时,慢查询日志包含旧版本的名称。

  • Making temporary file (append) before replaying LOAD DATA INFILE 该线程正在执行 LOAD DATA 语句,并将数据附加到包含副本从中读取行的数据的临时文件。
  • Making temporary file (create) before replaying LOAD DATA INFILE 该线程正在执行 LOAD DATA 语句并创建一个临时文件,其中包含副本从中读取行的数据。 仅当原始 LOAD DATA 语句由运行低于 MySQL 5.0.3 的 MySQL 版本的源记录时,才会遇到此状态。
  • Reading event from the relay log 该线程已从中继日志中读取事件,以便可以处理该事件。
  • Slave has read all relay log; waiting for more updates Replica has read all relay log; waiting for more updates 该线程已处理中继日志文件中的所有事件,现在正在等待 I/O(接收器)线程将新事件写入中继日志。
  • Waiting for an event from Coordinator 使用多线程副本(replica_parallel_workers 大于 1),副本工作线程之一正在等待来自协调器线程的事件。
  • Waiting for slave mutex on exit Waiting for replica mutex on exit 线程停止时发生的非常短暂的状态。
  • Waiting for Slave Workers to free pending events Waiting for Replica Workers to free pending events 当 Workers 正在处理的事件总大小超过replica_pending_jobs_size_max 系统变量的大小时,会发生此等待操作。 当大小低于此限制时,协调器将恢复调度。 仅当replica_parallel_workers 设置为大于0 时,才会出现此状态。
  • Waiting for the next event in relay log Reading event from the relay log 之前的初始状态。
  • Waiting until MASTER_DELAY seconds after master executed event Waiting until SOURCE_DELAY seconds after master executed event SQL 线程已读取事件,但正在等待副本延迟过去。 此延迟通过 SOURCE_DELAY | 设置 CHANGE REPLICATION SOURCE TO 的 MASTER_DELAY 选项。

SQL 线程的信息列也可能显示语句的文本。 这表明线程已经从中继日志中读取了一个事件,从中提取了语句,并且可能正在执行它。