10.14.5 复制 I/O (Receiver) Thread States
以下列表显示了复制 I/O (receiver) 线程在复制服务器上的常见状态。这状态也出现在SHOW REPLICA STATUS
语句中,以便您可以通过该语句获取线程的当前状态。
在 MySQL 8.0 中,对仪表盘名称进行了不兼容的更改。因此,监控工具可能会受到影响。如果您受到影响,可以将terminology_use_previous
系统变量设置为BEFORE_8_0_26
,以使 MySQL 服务器使用旧版本的名称。这使得监控工具可以继续工作,直到它们可以更新以使用新的名称。
将terminology_use_previous
系统变量设置为会话范围,以支持个体函数,或者将其设置为全局范围,以使其成为所有新会话的默认值。使用全局范围时,慢查询日志将包含旧版本的名称。
-
连接到源服务器的状态。
-
线程正在尝试连接到源服务器。
-
Queueing master event to the relay log
Queueing source event to the relay log
线程已经读取了事件,并将其复制到中继日志,以便 SQL 线程可以处理它。
-
Reconnecting after a failed binlog dump request
线程正在尝试重新连接到源服务器。
-
Reconnecting after a failed master event read
Reconnecting after a failed source event read
线程正在尝试重新连接到源服务器。连接重新建立后,状态将变为
Waiting for master to send event
。 -
一个在连接到源服务器后很短暂出现的状态。
-
一个很短暂的状态,连接到源服务器后立即出现。线程向源服务器发送请求,获取其二进制日志的内容,从指定的二进制日志文件名和位置开始。
-
一个状态,当启用
replica_preserve_commit_order
时,复制线程等待更早的工作线程提交。 -
线程已经连接到源服务器,正在等待二进制日志事件到达。如果等待时间超过
replica_net_timeout
秒,超时将发生。在这种情况下,线程将认为连接已断开,并尝试重新连接。 -
初始状态,之前是Connecting to master或Connecting to source。
-
一个很短暂的状态,线程正在停止。
-
您使用了非零
relay_log_space_limit
值,并且中继日志已经增长到足够大,以至于它们的总大小超过了这个值。 I/O (接收)线程正在等待 SQL (应用)线程处理中继日志内容,以便删除一些中继日志文件。 -
如果二进制日志dump请求失败(由于断开连接),线程将进入这个状态,睡眠,然后尝试定期重新连接。重试的间隔可以使用
CHANGE REPLICATION SOURCE TO
语句指定。 -
读取过程中发生错误(由于断开连接)。线程将睡眠指定的秒数,设置由
CHANGE REPLICATION SOURCE TO
语句设置的秒数,然后尝试重新连接。