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


前言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线程正尝试重新连接主服务器。Waiting for master to send event线程已经连接上主服务器,正等待二进制日志事件到达。如果主服务器正空闲,会持续较长的时间。如果等待持续slave_read_timeout秒,则发生超时。此时,线程认为连接被中断并企图重新连接。Queueing master event to the relay log线程已经读取一个事件,正将它复制到中继日志供SQL线程来处理。Waiting to reconnect after a failed master event read读取时(由于没有连接)出现错误,线程企图重新连接前将睡眠master-connect-retry秒。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线程处理中继日志内容并删除部分中继日志文件来释放足够的空间。Waiting for slave mutex on exit线程停止时发生的一个很简单的状态。三、从库SQL线程状态(State)值Reading event from the relay log线程已经从中继日志读取一个事件,可以对事件进行处理了。Has read all relay log; waiting for the slave I/O thread to update it线程已经处理了中继日志文件中的所有事件,现在正等待I/O线程将新事件写入中继日志。Waiting for slave mutex on exit线程停止时发生的一个很简单的状态。四、从库连接线程状态(State)值这些线程状态发生在复制从库上,但与连接线程相关联,而不与I/O或SQL线程相关联。Changing master线程正在处理CHANGE MASTER TO语句。Killing slave线程正在处理STOP SLAVE语句。Opening master dump table此状态发生在Creating table from master dump之后。Reading master dump table data此状态发生在Opening master dump table之后。Rebuilding the index on master dump table此状态发生在Reading master dump table data之后。总结以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对开发云的支持。

相关推荐: 【超简单】MySQL存储引擎的选择与配置

MySQL中的数据用各种不同的技术存储在文件(或内存)中。每一种技术都使用不同的存储机构,索引技巧,锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,能够获得额外的速度或者功能,从而改善应用的整体功能。这些不同的技术以及配套的相关功能在MySQL…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/10 20:17
下一篇 06/10 20:17

相关推荐