`
shiqidide
  • 浏览: 64509 次
文章分类
社区版块
存档分类
最新评论

SHOW SLAVE STATUS 详解

 
阅读更多
MySQL同步功能由3个线程(master上1个,slave上2个)来实现。执行DE>START SLAVEDE> 语句后,slave就创建一个I/O线程。I/O线程连接到master上,并请求master发送二进制日志中的语句。master创建一个线程来把日志的内容发送到slave上。这个线程在master上执行DE>SHOW PROCESSLISTDE> 语句后的结果中的DE>Binlog DumpDE> 线程便是。slave上的I/O线程读取master的DE>Binlog DumpDE> 线程发送的语句,并且把它们拷贝到其数据目录下的中继日志(relay logs)中。第三个是SQL线程,salve用它来读取中继日志,然后执行它们来更新数据。

如上所述,每个master/slave上都有3个线程。每个master上有多个线程,它为每个slave连接都创建一个线程,每个slave只有I/O和SQL线程。

show slave master 用于提供有关从属服务器线程的关键参数的信息

mysql> show slave status \G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 172.17.2.40
Master_User: photorepl
Master_Port: 4331
Connect_Retry: 60
Master_Log_File: mysql-bin.005502
Read_Master_Log_Pos: 64401238
Relay_Log_File: mysqld-relay-bin.015418
Relay_Log_Pos: 13456757
Relay_Master_Log_File: mysql-bin.005152
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB: mysql
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table: photo.%
Replicate_Wild_Ignore_Table: mysql.%
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 13456620
Relay_Log_Space: 36764898503
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 249904
××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

SHOW SLAVE STATUS会返回以下字段:

Slave_IO_State

SHOW PROCESSLIST输出的State字段的拷贝。SHOW PROCESSLIST用于从属I/O线程。如果线程正在试图连接到主服务器,正在等待来自主服务器的时间或正在连接到主服务器等,本语句会通知您

Master_User

被用于连接主服务器的当前用户。

Master_Port

当前的主服务器接口。

Connect_Retry

--master-connect-retry选项的当前值

Master_Log_File

I/O线程当前正在读取的主服务器二进制日志文件的名称。

Read_Master_Log_Pos

在当前的主服务器二进制日志中,I/O线程已经读取的位置。

Relay_Log_File

SQL线程当前正在读取和执行的中继日志文件的名称。

Relay_Log_Pos

在当前的中继日志中,SQL线程已读取和执行的位置。

Relay_Master_Log_File

由SQL线程执行的包含多数近期事件的主服务器二进制日志文件的名称。

Slave_IO_Running

I/O线程是否被启动并成功地连接到主服务器上。

Slave_SQL_Running

SQL线程是否被启动。

Replicate_Do_DB,Replicate_Ignore_DB

使用--replicate-do-db和--replicate-ignore-db选项指定的数据库清单。

Replicate_Do_Table,Replicate_Ignore_Table,Replicate_Wild_Do_Table,Replicate_Wild_Ignore_Table

使用--replicate-do-table,--replicate-ignore-table,--replicate-wild-do-table和--replicate-wild-ignore_table选项指定的表清单。

Last_Errno,Last_Error

被多数最近被执行的查询返回的错误数量和错误消息。错误数量为0并且消息为空字符串意味着“没有错误”。如果Last_Error值不是空值,它也会在从属服务器的错误日志中作为消息显示。

举例说明:

Last_Errno: 1051

Last_Error: error 'Unknown table 'z'' on query 'drop table z'

该消息指示,表z曾经存在于在主服务器中并已被取消了,但是它没有在从属服务器中存在过,因此对于从属服务器,DROP TABLE失败。(举例说明,在设置复制时,如果您忘记了把此表拷贝到从属服务器中,则这有可能发生。)

Skip_Counter

最近被使用的用于SQL_SLAVE_SKIP_COUNTER的值。

Exec_Master_Log_Pos

来自主服务器的二进制日志的由SQL线程执行的上一个时间的位置(Relay_Master_Log_File)。在主服务器的二进制日志中的(Relay_Master_Log_File,Exec_Master_Log_Pos)对应于在中继日志中的(Relay_Log_File,Relay_Log_Pos)。

Relay_Log_Space

所有原有的中继日志结合起来的总大小。

Until_Condition,Until_Log_File,Until_Log_Pos

在START SLAVE语句的UNTIL子句中指定的值。

Until_Condition具有以下值:

如果没有指定UNTIL子句,则没有值

如果从属服务器正在读取,直到达到主服务器的二进制日志的给定位置为止,则值为Master

如果从属服务器正在读取,直到达到其中继日志的给定位置为止,则值为Relay

Until_Log_File和Until_Log_Pos用于指示日志文件名和位置值。日志文件名和位置值定义了SQL线程在哪个点中止执行。

Master_SSL_Allowed,Master_SSL_CA_File,Master_SSL_CA_Path,Master_SSL_Cert,Master_SSL_Cipher,Master_SSL_Key

这些字段显示了被从属服务器使用的参数。这些参数用于连接主服务器。

Master_SSL_Allowed具有以下值:

如果允许对主服务器进行SSL连接,则值为Yes

如果不允许对主服务器进行SSL连接,则值为No

如果允许SSL连接,但是从属服务器没有让SSL支持被启用,则值为Ignored。

与SSL有关的字段的值对应于--master-ca,--master-capath,--master-cert,--master-cipher和--master-key选项的值。

Seconds_Behind_Master

本字段是从属服务器“落后”多少的一个指示。当从属SQL线程正在运行时(处理更新),本字段为在主服务器上由此线程执行的最近的一个事件的时间标记开始,已经过的秒数。当此线程被从属服务器I/O线程赶上,并进入闲置状态,等待来自I/O线程的更多的事件时,本字段为零。总之,本字段测量从属服务器SQL线程和从属服务器I/O线程之间的时间差距,单位以秒计。

如果主服务器和从属服务器之间的网络连接较快,则从属服务器I/O线程会非常接近主服务器,所以本字段能够十分近似地指示,从属服务器SQL线程比主服务器落后多少。如果网络较慢,则这种指示不准确;从属SQL线程经常会赶上读取速度较慢地从属服务器I/O线程,因此,Seconds_Behind_Master经常显示值为0。即使I/O线程落后于主服务器时,也是如此。换句话说,本列只对速度快的网络有用。

即使主服务器和从属服务器不具有相同的时钟,时间差计算也会起作用(当从属服务器I/O线程启动时,计算时间差。并假定从此时以后,时间差保持不变)。如果从属SQL线程不运行,或者如果从属服务器I/O线程不运行或未与主服务器连接,则Seconds_Behind_Master为NULL(意义为“未知”)。举例说明,如果在重新连接之前,从属服务器I/O线程休眠了master-connect-retry秒,则显示NULL,因为从属服务器不知道主服务器正在做什么,也不能有把握地说落后多少。


分享到:
评论

相关推荐

    mysql主从同步及canal配置详解.docx

    SHOW SLAVE STATUS; ``` 查看 Slave 状态 在 Slave 节点上,我们可以使用以下命令来查看 Slave 的状态: ``` SHOW SLAVE STATUS; ``` Binlog 处理方式 MySQL 对于 binlog 处理方式有一些 Q&A,例如:如何查看 ...

    基于MySQL Master Slave同步配置的操作详解

    使用`start slave`命令启动复制进程,随后使用`show slave status\G`检查复制状态,确认Slave是否成功连接到Master并开始同步。 7. **监控与维护**: 定期检查复制状态,确保数据同步无误。如果出现错误,可能...

    mysql主从与读写分离安装详解参照.pdf

    - **检查状态**:用`show slave status\G`查看复制状态,确认`Slave_IO_Running`和`Slave_SQL_Running`均为`YES`。 **读写分离** 读写分离是将读操作和写操作分配到不同的服务器上,以减轻主服务器的压力。在这种...

    MySQL主从同步配置图文详解(案例).pdf

    重启Slave的MySQL服务后,通过SHOW SLAVE STATUS命令检查同步状态。 最后,通过在Master上执行新的写操作,如创建新表,然后在Slave上验证这些更改是否已同步,来测试主从同步是否成功。 总之,MySQL主从同步配置...

    mysql5.7 主从配置

    使用 `show slave status\G` 命令可以查看 Slave 服务器的状态。 10. 测试主从配置 在 Master 服务器上,我们可以创建一个数据库和表,然后插入一些数据。然后,我们可以在 Slave 服务器上查看是否同步过去的数据...

    mysql5.6.14配置主从复制

    此外,如果从服务器的`SHOW SLAVE STATUS\G;`显示`Slave_IO_Running`和`Slave_SQL_Running`均为`Yes`,则表明复制正在正常进行。 MySQL主从复制提供了一种高可用性解决方案,使得在主服务器故障时,可以从从服务器...

    zabbix监控MySQL主从状态的方法详解

    一般情况下,在MySQL的从上查看从的运行状态是通过Slave_IO_Running线程和Slave_SQL_Running线程是否ok,通过命令“show slave status\G;”即可查看。所以这里根据这两个值进行判断。 agent端脚本编写及配置 说明:...

    Mysql主从复制配置

    6. 最后输入 show slave status\G; 若出现以下内容则表示配置成功。 配置服务器 A 为 slave: 1. 接着以上配置 A 的步骤,在命令行中输入 slave stop; 2. 配置 master 的相关信息,即输入如下命令: Change ...

    MySQL5.6 数据库主从同步安装与配置详解(Master/Slave)

    监控复制状态可以使用`SHOW SLAVE STATUS \G;`命令,确保`Slave_IO_Running`和`Slave_SQL_Running`都显示`Yes`,表明主从同步正常进行。 主从同步对于数据库的高可用性至关重要,它可以保证即使主服务器出现故障,...

    mysql_5.5._下的主从模式.pdf

    使用`show slave status;`命令检查从服务器的状态。如果`Slave_IO_Running`和`Slave_SQL_Running`均为`Yes`,且`Master_Log_File`和`Read_Master_Log_Pos`与主服务器的`show master status;`结果一致,那么说明从...

    Mycat高可用以及mycat实现mysql高可用以及mycat的mysql主从配置,负载均衡,读写分离,以及验证查询sql具体执行在主库还是从库上

    SHOW SLAVE STATUS \G 可以看到复制工作已经开始且正常。 三、Mycat配置 在Mycat配置文件中,我们可以配置账户信息: <property name="password">123456 <property name="schemas">test 在Schema.xml文件中,...

    读写分离创建方法.docx

    - 检查复制状态:`show slave status\G`,确保`Slave_IO_Running`和`Slave_SQL_Running`均为Yes。 2. **Mycat中间件安装与配置** Mycat是一个开源的数据库中间件,它能实现分库分表、读写分离等功能。对于...

    MySQL主从数据库搭建方法详解

    使用`SHOW SLAVE STATUS`命令检查从服务器的复制状态,确认`Slave_IO_Running`和`Slave_SQL_Running`均为`Yes`。 10. **测试与监控**: 在主服务器上进行数据更新,然后在从服务器检查是否同步完成。确保整个系统...

    深入mysql主从复制延迟问题的详解

    5. 验证从服务器状态`SHOW SLAVE STATUS \G`,确保复制正常进行。 总之,理解MySQL主从复制的机制和延迟原因对于优化数据库系统的性能和确保数据一致性至关重要。通过监控、调整和优化,可以有效地管理和减少主从...

    MySQL Failover搭建

    在主从服务器上,确保用户具有执行`SHOW SLAVE STATUS`,`SHOW MASTER STATUS`,`STOP SLAVE`,`START SLAVE`,`WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS`,`CHANGE MASTER TO`,`REPLICATE SLAVE`,`SUPER`,`GRANT ...

    mysql双机热备同步

    show slave status; show master status; ``` 通过这些命令,可以查看同步的状态和进度。 总结 MySQL 双机热备同步可以实现数据的实时备份和热备,提高服务器的可用性和可靠性。通过配置主从关系和双向同步机制,...

    Mysql 5.7从节点配置多线程主从复制的方法详解

    可以通过`SHOW SLAVE STATUS \G`命令查看复制状态,包括当前正在运行的线程数和复制进度等信息。根据系统的实际情况,可能需要进一步调整`slave_parallel_workers`的值,以达到最佳性能。 总之,MySQL 5.7的多线程...

    MySQL 复制详解及简单实例

    复制过程中,可以使用`SHOW SLAVE STATUS\G`来检查从库的同步状态,包括延迟时间、复制线程状态等。如果发现任何问题,应及时解决,如网络问题、权限问题或数据不一致等。 ### 6. 扩展复制模式 MySQL还支持其他...

    详解Mysql主从同步配置实战

    你可以通过`SHOW SLAVE STATUS\G`命令检查复制状态,以确保一切正常运行。 主从同步配置的实践不仅有助于数据冗余,还能提高系统的可用性。然而,需要注意的是,主从同步并非完全实时,可能会存在一定的延迟。此外...

    mysql主从复制读写分离

    7. **验证复制状态**:通过`show slave status\G`命令检查从服务器的复制状态,确保一切正常运行。 **读写分离** 是在主从复制的基础上,将读操作(SELECT)分配给从服务器,写操作(INSERT、UPDATE、DELETE)仍在...

Global site tag (gtag.js) - Google Analytics