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

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 replication 配置(主从复制读写分离)

    mysql> show slave status\G; // 查看从服务器状态 ``` ##### 2. 虚拟机三配置 1. **配置为从服务器** ```sql mysql> stop slave; // 停止从服务线程 mysql> change master to master_host='192.168.0.7', ...

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

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

    Mysql主从配置详解

    SHOW SLAVE STATUS\G ``` 如果`Slave_IO_Running`和`Slave_SQL_Running`都显示为`Yes`,则表示复制正常工作。 #### 四、总结 以上步骤详细介绍了如何在MySQL中配置主从复制。通过这种方式,可以从服务器实时同步...

    MySQL主从同步与读写分离配置图文详解

    - 使用`SHOW SLAVE STATUS\G`命令检查Slave状态,确认是否有错误发生。 - 确认Master的二进制日志是否正常开启。 - 检查网络连接是否正常,确保Master和Slave之间可以互相通信。 以上步骤涵盖了MySQL主从同步和读写...

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

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

    mysql主从同步镜像备份镜像备份汇编.pdf

    - 使用`SHOW SLAVE STATUS`命令查看`Seconds_Behind_Master`字段来确定同步延迟的程度。 通过以上详细的步骤,您可以成功地在Windows环境下配置MySQL的主从同步机制,从而提高数据的可靠性和系统的可用性。

    linux下mysql主从复制

    - **检查 Slave 节点状态**:执行 `SHOW SLAVE STATUS\G` 命令查看 Slave 节点的状态,确认 `Slave_IO_Running` 和 `Slave_SQL_Running` 的值都为 Yes,表示复制正常运行。 #### 三、双向主从复制配置 ##### 1. ...

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

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

    mysql5.7 主从配置

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

    mysql主从主主配置.docx

    show slave status\G ``` **1.2 配置从服务器** 在从服务器上,同样需要进行一些必要的配置。 **步骤 1:** 修改 MySQL 配置文件 `/etc/my.conf`,添加 `server-id` 参数。 ```bash server-id = 2 # 从服务器的...

    mysql5.6.14配置主从复制

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

    mysql5.5 master-slave(Replication)配置方法

    ### MySQL 5.5 Master-Slave (Replication) 配置详解 #### 一、基础知识简介 在深入了解具体的配置步骤之前,我们首先简要回顾一下MySQL中的Master-Slave复制机制的基础概念。 - **主从复制(Master-Slave ...

    Linux配置mysql主从

    - 如果出现错误,可以通过`SHOW SLAVE STATUS\G`命令查看错误详情,并采取相应措施解决问题。 - **性能优化**: - 根据实际负载调整MySQL配置文件中的参数。 - 考虑使用读写分离等技术提高系统整体性能。 通过...

    Msql热备份

    - 使用`SHOW SLAVE STATUS\G`命令检查从服务器的复制状态,确认`Slave_IO_Running`和`Slave_SQL_Running`均为`Yes`: ```sql SHOW SLAVE STATUS\G ``` #### 四、常见问题及解决办法 - **出现1198错误**:这通常...

Global site tag (gtag.js) - Google Analytics