数据库 
首页 > 数据库 > 浏览文章

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

(编辑:jimmy 日期: 2024/11/26 浏览:3 次 )

前言

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 SHOW PROCESSLIST协助故障诊断全过程
下一篇:MySQL主从同步机制与同步延时问题追查过程
一句话新闻
一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?
友情链接:杰晶网络 DDR爱好者之家 南强小屋 黑松山资源网 白云城资源网 网站地图 SiteMap