show slave status参数解释​

show slave status参数解释

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

mysql> show slave status\G
*************************** 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支持),复制通道的名称,可以有多个。

本文分享自微信公众号 - DBA随笔(gh_acc2bbc0d447)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券