Replication Slave I O Thread States - xiaoboluo768/qianjinliangfang GitHub Wiki

  • 以下列表显示了在从库I / O线程的State列中可能看到的最常见状态。此状态也出现在SHOW SLAVE STATUS显示的Slave_IO_State列中,因此您可以通过使用该语句获得当前从库IO线程的状态
    • 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:在连接到主库成功之后非常短暂的状态,表示正在向主库注册从库的连接信息(如从库的IP和端口信息等)
    • Requesting binlog dump:在与主库建立连接成功之后非常短暂的状态,使用当前的IO线程位置,向主库发送从当前位置开始的二进制日志的内容的请求
    • Waiting for its turn to commit:如果启用了slave_preserve_commit_order参数,则表示从库IO线程正在等待较旧的工作线程提交数据
    • Waiting for master to send event:线程已经连接到主库并且正在等待新的二进制日志事件,如果主库空闲,这可能持续很长时间。如果等待时间持续超过slave_net_timeout秒,则从库IO线程发生超时。此时,从库IO线程认为主库的连接断开,会尝试重新连接主库
    • Waiting for master update:连接到主库之前的初始状态
    • Waiting for slave mutex on exit:线程停止时短暂发生的状态,表示正在回收IO线程的相关互斥资源
    • Waiting for the slave SQL thread to free enough relay log space:如果relay_log_space_limit变量设置值不为0,那么当中继日志总大小增长到超过此值时。 I / O线程会等待,直到SQL线程通过重放中继日志内容并删除重放完成的中继日志以释放中继日志占用的空间,使其满足中继日志中大小不大于relay_log_space_limit变量的值时,IO线程才可以继续写入中继日志操作。
    • Waiting to reconnect after a failed binlog dump request:如果二进制日志dump请求失败(由于断开连接),那么线程在进入sleep状态,此时出现此状态,然后IO线程定期尝试重新连接主库。重试之间的间隔时间可以使用CHANGE MASTER TO语句的MASTER_CONNECT_RETRY选项指定
      • 要注意,从库的IO线程连接主库是有心跳机制的,当主库超过这个心跳时间没有发送新的event到slave上时,IO线程就对主库发起一个心跳请求,如果请求成功就重置心跳时间,当主库有新的event发送到slave时,这个心跳时间也会进行重置。心跳时间由change master语句的MASTER_HEARTBEAT_PERIOD选项设置(以秒为单位),范围0到4294967秒,分辨率(毫秒) 最小非零值为0.001,表示1毫秒。将间隔设置为0时表示禁用心跳。 默认值是slave_net_timeout配置参数的二分之一。so,理论上是不会出现主从数据库正常的情况下因为主库没有写数据而导致从库IO线程断开的情况。
    • Waiting to reconnect after a failed master event read:读取主库binlog时发生错误(由于断开连接)。IO线程在尝试重新连接主库之前,线程正在以CHANGE MASTER TO语句的MASTER_CONNECT_RETRY选项(默认为60)设置的秒数进行sleep(该时间是重连失败之后的重试间隔时间)

上一篇:Replication Master Thread States | 下一篇:Replication Slave SQL Thread States