加入收藏 | 设为首页 | 会员中心 | 我要投稿 扬州站长网 (https://www.0514zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

深入理解MySQL主从复制线程状态改变

发布时间:2022-03-02 14:33:51 所属栏目:MySql教程 来源:互联网
导读:MySQL的主从复制的基本原理是从库连接到主库,主库生成一个主库DUMP线程,该DUMP线程的主要任务是 一直挖掘binlog日志,然后发送到从库的IO线程,IO线程接收到日志流后,写入relay log,另一个线 程SQL线程,会读取该relay log内容,然后对sql语句进行重放.
       MySQL的主从复制的基本原理是从库连接到主库,主库生成一个主库DUMP线程,该DUMP线程的主要任务是
      一直挖掘binlog日志,然后发送到从库的IO线程,IO线程接收到日志流后,写入relay log,另一个线
      程SQL线程,会读取该relay log内容,然后对sql语句进行重放.
 
      本文主要给大家介绍的是关于MySQL主从复制线程状态转变的相关内容,下面话不多说了,来一起看看详细的介绍吧
 
一、主库线程状态(State)值
 
以下列表显示了主从复制中主服务器的Binlog Dump线程的State列中可能看到的最常见状态(SHOW PROCESSLIST)。如果Binlog Dump线程在主服务器上看不到,这意味着复制没有运行,也就是说,目前没有连接任何Slave主机。
 
Sending binlog event to slave
 
二进制日志由各种事件组成,一个事件通常为一个更新加一些其它信息。线程已经从二进制日志读取了一个事件并且正将它发送到从服务器。
 
Finished reading one binlog; switching to next binlog
 
线程已经读完二进制日志文件并且正打开下一个要发送到从服务器的日志文件。
 
Has sent all binlog to slave; waiting for binlog to be updated
 
线程已经从二进制日志读取所有主要的更新并已经发送到了从服务器。线程现在正空闲,等待由主服务器上新的更新导致的出现在二进制日志中的新事件。
 
Waiting to finalize termination
 
线程停止时发生的一个很简单的状态。
 
二、从库I/O线程状态(State)值
 
Connecting to master
 
线程正试图连接主服务器。
 
Checking master version
 
建立同主服务器之间的连接后立即临时出现的状态。
 
Registering slave on master
 
建立同主服务器之间的连接后立即临时出现的状态。
 
Requesting binlog dump
 
建立同主服务器之间的连接后立即临时出现的状态。线程向主服务器发送一条请求,索取从请求的二进制日志文件名和位置开始的二进制日志的内容。
 
Waiting to reconnect after a failed binlog dump request
 
如果二进制日志转储请求失败(由于没有连接),线程进入睡眠状态,然后定期尝试重新连接。可以使用–master-connect-retry选项指定重试之间的间隔。
 
Reconnecting after a failed binlog dump request
 
线程正尝试重新连接主服务器。
 深入理解MySQL主从复制线程状态改变
 
Reconnecting after a failed master event read
 
线程正尝试重新连接主服务器,当连接重新建立后,状态变为Waiting for master to send event。
 
Waiting for the slave SQL thread to free enough relay log space
 
正使用一个非零relay_log_space_limit值,中继日志已经增长到其组合大小超过该值。I/O线程正等待直到SQL线程处理中继日志内容并删除部分中继日志文件来释放足够的空间。

(编辑:扬州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!