show slave status参数解释​

  • 2019 年 11 月 6 日
  • 笔记

show slave status参数解释

今天搭建了一天的游戏积分主从环境,也没搞什么新东西,看了一天的show slave status,索性就把这个show slave status的结果分析一把,废话不多说,先来看看这个命令的输出结果,想必大家也不陌生:

mysql> show slave statusG  *************************** 1. row ***************************                 Slave_IO_State: Waiting for master to send event                    Master_Host: 10.10.10.10                    Master_User: mysql_slave                    Master_Port: 3306                  Connect_Retry: 60                Master_Log_File: mysql-bin.000003            Read_Master_Log_Pos: 790                 Relay_Log_File: relay-log.000008                  Relay_Log_Pos: 1003          Relay_Master_Log_File: mysql-bin.000003               Slave_IO_Running: Yes              Slave_SQL_Running: Yes                Replicate_Do_DB:            Replicate_Ignore_DB:             Replicate_Do_Table:         Replicate_Ignore_Table:        Replicate_Wild_Do_Table:    Replicate_Wild_Ignore_Table:                     Last_Errno: 0                     Last_Error:                   Skip_Counter: 0            Exec_Master_Log_Pos: 790                Relay_Log_Space: 2591                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: 0  Master_SSL_Verify_Server_Cert: No                  Last_IO_Errno: 0                  Last_IO_Error:                 Last_SQL_Errno: 0                 Last_SQL_Error:    Replicate_Ignore_Server_Ids:               Master_Server_Id: 1                    Master_UUID: 5f0b7791-a499-11e6-901c-44a84227448b               Master_Info_File: mysql.slave_master_info                      SQL_Delay: 0            SQL_Remaining_Delay: NULL        Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates             Master_Retry_Count: 86400                    Master_Bind:        Last_IO_Error_Timestamp:       Last_SQL_Error_Timestamp:                 Master_SSL_Crl:             Master_SSL_Crlpath:             Retrieved_Gtid_Set: 89gb7791-a499-11e6-901c-44a84227448b:2-11              Executed_Gtid_Set: 4ft6f284-a4a8-11e6-a3fe-44a84220797c:1-4,89gb7791-a499-11e6-901c-44a84227448b:1-11                  Auto_Position: 1           Replicate_Rewrite_DB:                   Channel_Name:             Master_TLS_Version:

现在按照顺序介绍一下这个结果集中各个参数的意思:

Slave_IO_State

SHOW PROCESSLIST输出的State字段的拷贝。

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值不是空值,它也会在从服务器的错误日志中作为消息显示。

Skip_Counter

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

Exec_Master_Log_Pos

表示SQL线程已经执行的Relay log相对于主库二进制日志偏移量的位置,一般gtid复制出错使用该项去主库中查询。

Relay_Log_Space

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

Until_Condition

如果没有指定UNTIL子句,则没有值。如果从属服务器正在读取,直到达到主服务器的二进制日志的给定位置为止,则值为Master,如果从属服务器正在读取,直到达到其中继日志的给定位置为止,则值为Relay。

Until_Log_File

Until_Log_Pos

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

Master_SSL_Allowed

显示了从服务器是否使用SSL连接到主服务器。如果允许对主服务器进行SSL连接,则值为Yes;如果不允许对主服务器进行SSL连接,则值为No;如果允许SSL连接,但是从服务器没有让SSL支持被启用,则值为Ignored。

Master_SSL_CA_File

Master_SSL_CA_Path

Master_SSL_Cert

Master_SSL_Cipher

Master_SSL_Key

如果Slave使用SSL连接Master服务器,这里就会显示对应的证书和私钥信息。使用CHANGE MASTER与SSL相关的选项有:–master-ca,–master-capath,–master-cert,–master-cipher和–master-key等。

Seconds_Behind_Master

表示主从之间延迟的时间,单位是秒。就是SQL线程当前执行的binlog(实际上是relay log)中的timestamp和IO线程最新的timestamp的差值。

实质上,此字段计算Slave SQL线程和Slave i/o线程之间的时间差 (以秒为单位)。如果主节点和从服务器之间的网络连接速度较快,则Slave i/o线程非常接近主服务器,因此此字段是对从SQL线程与主服务器进行比较的后的一个很好的近似值。如果网络很慢,这不是一个好的近似;从SQL线程可能经常被从i/o线程所捕获,因此Seconds_Behind_Master通常显示值为0,即使i/o线程比主服务器慢很多。换言之,此列仅适用于快速网络,后续将专门出一篇文章对这个SBM的值进行说明。

Master_SSL_Verify_Server_Cert

显示是否认证Master证书。

Last_IO_Error,Last_SQL_Error

类似last_error,在出现IO线程错误和SQL线程错误的时候会有值

Replicate_Ignore_Server_Ids:

slave当前会跳过的事件号

Master_Server_Id

显示主服务器的Server_id。

Master_UUID

记录Master的UUID。

Master_Info_File

记录Master info信息的存储位置。

SQL_Delay

记录Slave设置延迟复制的时间,0表示无延迟,主动延迟复制在某些情况下有助于恢复。

SQL_Remaining_Delay

当 Slave_SQL_Running_State 等待,直到MASTER_DELAY秒后,Master执行的事件, 此字段包含一个整数,表示有多少秒左右的延迟。在其他时候,这个字段是0。

Slave_SQL_Running_State

记录SQL线程的状态。常见的三种状态如下:

SQL线程运行状态:

1) Reading event from the relay log

线程已经从中继日志读取一个事件,可以对事件进行处理了。

2) Has read all relay log; waiting for the slave I/O thread to update it

线程已经处理了中继日志文件中的所有事件,现在正等待I/O线程将新事件写入中继日志。

3) Waiting for slave mutex on exit

线程停止时发生的一个很简单的状态。

Master_Retry_Count

86400 slave和master断开连接之后重试连接的次数,默认3600*24

Master_Bind

slave从库在多网络接口的情况下使用,以确定用哪一个slave网络接口连接到master。

Last_IO_Error_Timestamp

记录最近IO线程错误的时间戳。

Last_SQL_Error_Timestamp

记录最近SQL线程错误的时间戳。

Retrieved_Gtid_Set

接收的二进制日志集合,对应IO线程。

execute_Gtid_Set

执行的二进制日志GTID集合,对应SQL线程。

Auto_Position

记录在GTID模式下是否开启了自动事务校验。

replicate_rewrite_db

同步的时候需要更改的db名称,例如

master与slave同步fandb这个库,但因为需要slave需要将fandb改名为dudb,master不能改,就需要这个参数。在Slave端的my.cnf中加入

replicate-rewrite-db=fandb->dudb

Channel_Name

在多源复制下(5.7支持),复制通道的名称,可以有多个。