8.14.6 复制副本 I/O 线程状态

以下列 table 显示了在副本服务器 I/O 线程的State列中看到的最常见状态。此状态也会出现在显示从站状态所显示的Slave_IO_State列中,因此您可以通过使用该语句来很好地了解正在发生的情况。

  • Checking master version

构建与源的连接之后,状态非常短暂。

  • Connecting to master

线程正在尝试连接到源。

  • Queueing master event to the relay log

该线程已读取事件,并将其复制到中继日志中,以便 SQL 线程可以处理它。

  • Reconnecting after a failed binlog dump request

线程正在尝试重新连接到源。

  • Reconnecting after a failed master event read

线程正在尝试重新连接到源。再次构建连接后,状态变为Waiting for master to send event

  • Registering slave on master

构建与源的连接之后非常短暂发生的状态。

  • Requesting binlog dump

构建与源的连接之后,状态非常短暂。线程从请求的二进制日志文件名和位置开始,向源发送对其二进制日志内容的请求。

  • Waiting for its turn to commit

如果启用了slave_preserve_commit_order,则副本线程在 await 较早的工作线程提交时发生的状态。

  • Waiting for master to send event

线程已连接到源并正在 await 二进制日志事件到达。如果源处于空闲状态,这可能会持续很长时间。如果 await 持续slave_net_timeout秒,则会发生超时。此时,线程认为连接已断开,并尝试重新连接。

  • Waiting for master update

Connecting to master之前的初始状态。

  • Waiting for slave mutex on exit

在线程停止时短暂发生的状态。

  • Waiting for the slave SQL thread to free enough relay log space

您正在使用非零的relay_log_space_limit值,并且中继日志的大小已经足够大,以致它们的组合大小超过了该值。 I/O 线程正在 await,直到 SQL 线程通过处理中继日志内容释放足够的空间,以便它可以删除一些中继日志文件。

  • Waiting to reconnect after a failed binlog dump request

如果二进制日志转储请求失败(由于断开连接),则线程在休眠时进入此状态,然后尝试定期重新连接。重试之间的间隔可以使用更改为主语句指定。

  • Waiting to reconnect after a failed master event read

读取时发生错误(由于断开连接)。在尝试重新连接之前,线程在更改为主语句(默认值为 60)设置的秒数内处于休眠状态。