【MySQL命令】show slave status\G 超详细全面解释

    这个命令是DBA日常运维中常用来查看主从状态的命令,很多备份,监控工具也会使用到该命令监控主从状态是否正常,主从延迟,获取位点信息等。作为常用日常命令,一定要完全理解该命令的输出。今天主要结合 官方文档 和 实际输出 详细解释该命令。达到完全搞懂!

该语句提供有关副本线程的基本参数的状态信息。它需要 SUPER 或 REPLICATION SLAVE 特权。

建议使用\G语句终止符来获得更具可读性的垂直布局:

show slave status 输出以及解释

以下输出来自 MySQL 5.7.19 版本。各版本输出略有差异

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event --IO thread的状态
                  Master_Host: 10.10.10.10         -- 主库的地址     
                  Master_User: repl                -- 用于连接主库复制账号(这个账号是在主库上创建)
                  Master_Port: 3300                -- 主库的端口 
                Connect_Retry: 10                  -- 连接重试之间的秒数(默认 60)
              Master_Log_File: mysql-bin.005395    -- I/O 线程当前正在读取的主库的二进制日志文件名称。
          Read_Master_Log_Pos: 684976832           -- I/O 线程已读取的当前主库二进制日志文件中的位点
               Relay_Log_File: dd-relay.000063     -- SQL线程正在读取和执行的中继日志名称
                Relay_Log_Pos: 684953253           -- SQL线程正在读取和执行的当前中继日志的位点
        Relay_Master_Log_File: mysql-bin.005395    -- SQL 线程执行的最新事件 对应在主库上的二进制日志文件名称。
             Slave_IO_Running: Yes                 -- IO线程是否已启动并已成功连接到主库
            Slave_SQL_Running: Yes                 -- SQL线程是否启动。
              Replicate_Do_DB:                     -- 需要复制的DB
          Replicate_Ignore_DB:                     -- 复制忽略的DB
           Replicate_Do_Table:                     -- 需要复制的表
       Replicate_Ignore_Table:                     -- 复制忽略的表
      Replicate_Wild_Do_Table:                     -- 用于指定需要复制的数据库表,支持通配符(wildcard)的形式
  Replicate_Wild_Ignore_Table:                     -- 用于指定需要忽略(不复制)的数据库表,同样支持通配符的形式。
                   Last_Errno: 0                   -- Last_SQL_Errno的别名
                   Last_Error:                     -- Last_SQL_Error的别名
                 Skip_Counter: 0                   -- 系统变sql_slave_skip_counter 的当前值  (从库跳过的SQL数量)
          Exec_Master_Log_Pos: 684953080           -- SQL线程已经读取和执行过的中继日志 对应在主库二进制日志文件的位点
              Relay_Log_Space: 684977292           -- 所有现有中继日志文件的总大小。
              Until_Condition: None                -- start slave 中制定 until 语句
               Until_Log_File:                     -- start slave 中制定 until 语句
                Until_Log_Pos: 0                   -- start slave 中制定 until 语句
           Master_SSL_Allowed: No                  -- 是否允许与源的 SSL 连接
           Master_SSL_CA_File:                     -- 指定用于验证主服务器证书的证书颁发机构(CA)文件的路径
           Master_SSL_CA_Path:                     -- 指定用于验证主服务器证书的证书颁发机构(CA)路径的路径
              Master_SSL_Cert:                     -- 指定从服务器的 SSL 证书文件的路径
            Master_SSL_Cipher:                     -- 指定在 SSL 通信中使用的密码套件
               Master_SSL_Key:                     -- 指定从服务器的 SSL 私钥文件的路径
        Seconds_Behind_Master: 0                   -- 主从延迟
Master_SSL_Verify_Server_Cert: No                  -- 表示是否验证主服务器的 SSL 证书。
                Last_IO_Errno: 0                   -- 导致IO线程停止的最近一次的错误码,Errno :0 表示表示没有错误
                Last_IO_Error:                     -- 导致IO线程停止的最近的错误信息 。Erro为空表示没有错误 
               Last_SQL_Errno: 0                   -- 导致SQL线程停止的最近的错误码。Errno :0 表示没有错误 
               Last_SQL_Error:                     -- 导致SQL线程停止的错误信息,Erro为空表示没有错误 
  Replicate_Ignore_Server_Ids:                     -- 忽略复制的主库的server_id
             Master_Server_Id: 181323300           -- 主库的参数server_id的值
                  Master_UUID: 127ef593-1826-11eb-8a97-6c92bf7d39de           -- 主库参数server_uuid的值
             Master_Info_File: mysql.slave_master_info                        -- 在从库上存储主库信息的文件或表
                    SQL_Delay: 0                                              -- 从库延迟主库多少秒
          SQL_Remaining_Delay: NULL                                           -- 当Slave_SQL_Running_State为 时 Waiting until MASTER_DELAY seconds after master executed event,该字段包含剩余延迟秒数。其他时候,该字段为 NULL。
      Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates -- SQL线程的运行状态
           Master_Retry_Count: 86400  -- 在连接丢失的情况下,从库可以尝试重新连接到主库的次数。
                  Master_Bind:       -- 
      Last_IO_Error_Timestamp:       -- 最近的I/O 线程发生错误的时间 格式YYMMDD hh:mm:ss
     Last_SQL_Error_Timestamp:       -- 最近的SQL 线程发生错误的时间 格式YYMMDD hh:mm:ss
               Master_SSL_Crl:       -- 指定撤销列表 (CRL) 文件的路径,该文件包含已被撤销的 SSL 证书列表
           Master_SSL_Crlpath:       -- 指定撤销列表 (CRL) 文件的路径,该文件包含已被撤销的 SSL 证书列表
           Retrieved_Gtid_Set: 127ef593-1826-11eb-8a97-6c92bf7d39de:330411-2764671 -- 从库已经接收到的GTID的集合(I/O线程),如果GTID模式没有开启则为空。这个值是现在存在或者已经存在在relay log中的GTID集合 
            Executed_Gtid_Set: 127ef593-1826-11eb-8a97-6c92bf7d39de:1-2764671,
3133d0b5-8d65-11e7-9f2e-c88d83a9846a:1-12697883,
657b7d6b-8d60-11e7-b85f-6c92bf4e09e6:1-1661102840    -- 已经被写进binlog的GTID的集合(SQL线程),这个值和 系统参数 gtid_executed 相同。也和在该实例上执行 show master status 中的Executed_Gtid_Set 值相同
                Auto_Position: 1  -- 如果正在使用自动定位1;否则为 0。
         Replicate_Rewrite_DB:    -- 用于指定需要在主从复制过程中进行数据库名重写的规则。
                 Channel_Name:    -- 正在显示的复制通道
           Master_TLS_Version:    -- 源上使用的 TLS 版本

重要参数的详细解释 

线程状态

Slave_IO_State

副本 I/O 线程的输出State字段 ,从库 IO 线程正在做什么:尝试连接到源、等待来自源的事件、重新连接到源等等,具体有一下状态

 

Slave_SQL_Running_State

SQL 线程的状态(类似于 Slave_IO_State

MySQL :: MySQL 5.7 Reference Manual :: 8.14.7 Replication Replica SQL Thread States

文件和位点

Master_Log_File

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

Read_Master_Log_Pos

I/O 线程已读取的当前主库二进制日志文件中的位点

Relay_Log_File

SQL线程正在读取和执行的中继日志名称

Relay_Log_Pos

SQL线程正在读取和执行的当前中继日志的位点

Relay_Master_Log_File

SQL 线程执行的最新事件 对应 在主库上的二进制日志文件名称。

Exec_Master_Log_Pos

SQL线程已经读取和执行过的中继日志 对应在主库二进制日志文件的位点

Relay_Log_Space

所有现有中继日志文件的总大小。

Slave_IO_Running

I/O 线程是否已启动并已成功连接到源。在内部,该线程的状态由以下三个值之一表示:

  • MYSQL_SLAVE_NOT_RUN。  副本 I/O 线程未运行。对于这个状态, Slave_IO_Running是 No

  • MYSQL_SLAVE_RUN_NOT_CONNECT。  副本 I/O 线程正在运行,但未连接到复制源。对于这个状态, Slave_IO_Running是 Connecting

  • MYSQL_SLAVE_RUN_CONNECT。  副本 I/O 线程正在运行,并连接到复制源。对于这个状态, Slave_IO_Running是 Yes

系统状态变量的值 Slave_running与该值相对应。

Slave_SQL_Running

SQL线程是否启动。

Replicate_Do_DBReplicate_Ignore_DB

  • Replicate_Do_DB:

    • 用于指定主从复制过程中需要复制的数据库。设置为一个数据库名,表示只复制该数据库的更新操作。可以使用逗号分隔的多个数据库名,例如 db1,db2
    • 例如,Replicate_Do_DB = db1 表示只复制 db1 数据库的更新。
  • Replicate_Ignore_DB:

    • 用于指定主从复制过程中需要忽略的数据库。设置为一个数据库名,表示不复制该数据库的更新操作。可以使用逗号分隔的多个数据库名,例如 db3,db4
    • 例如,Replicate_Ignore_DB = db3 表示不复制 db3 数据库的更新。

Replicate_Do_TableReplicate_Ignore_TableReplicate_Wild_Do_TableReplicate_Wild_Ignore_Table

  • Replicate_Wild_Do_Table:

    • 用于指定需要复制的数据库表,支持通配符(wildcard)的形式。只有匹配指定通配符的数据库表才会被复制到从服务器。
    • 例如,如果设置 Replicate_Wild_Do_Table = testdb.test_table%,则表示只有以 test_table 开头的表才会被复制。
  • Replicate_Wild_Ignore_Table:

    • 用于指定需要忽略(不复制)的数据库表,同样支持通配符的形式。匹配指定通配符的数据库表将不会被复制到从服务器。
    • 例如,如果设置 Replicate_Wild_Ignore_Table = testdb.ignore_table%,则表示以 ignore_table 开头的表将被忽略,不会被复制。

这两个字段的使用可以帮助管理员灵活地配置主从复制,选择性地复制或忽略特定的数据库表。这在一些特定的场景下非常有用,例如在主从服务器之间同步部分数据而忽略其他数据,或者限制复制的表以满足特定需求。

SHOW SLAVE STATUS 输出中,这两个字段的值会列举出匹配的数据库表。例如:

Replicate_Wild_Do_Table: testdb.test_table% 
Replicate_Wild_Ignore_Table: testdb.ignore_table%

这表示主从服务器之间的复制将仅涉及以 test_table 开头的表,并忽略以 ignore_table 开头的表。

Until_ConditionUntil_Log_FileUntil_Log_Pos

Until_Condition, Until_Log_File, 和 Until_Log_PosSHOW SLAVE STATUS 输出中用于指定主从复制停止条件的字段。

  •  Until_Condition:

    • 用于指定主从复制停止的条件。可能的值包括:
      • None: 表示不设置停止条件,正常复制。
      • Master_Pos: 表示使用日志文件和位置来指定停止的位置。
      • Relay_Log_Pos: 表示使用中继日志文件和位置来指定停止的位置。
      • Relay_Master_Log_File: 表示使用中继日志文件和主服务器的位置来指定停止的位置。
      • Executed_Gtid_Set: 表示使用 GTID 集合来指定停止的位置。
  • Until_Log_File:

    • 如果 Until_Condition 设置为 Master_PosRelay_Master_Log_File,则指定主从复制停止的日志文件名。
  • Until_Log_Pos:

    • 如果 Until_Condition 设置为 Master_PosRelay_Master_Log_File,则指定主从复制停止的日志位置。 

这些字段主要用于设置主从复制的停止条件,以便在特定的位置或 GTID 集合上停止复制。这在执行部分恢复或在特定时间点将主从复制同步到一致状态时很有用。如果设置了这些字段,主从复制将在指定条件下停止,并且不再继续同步。

Master_SSL_AllowedMaster_SSL_CA_FileMaster_SSL_CA_PathMaster_SSL_CertMaster_SSL_CipherMaster_SSL_CRL_FileMaster_SSL_CRL_PathMaster_SSL_KeyMaster_SSL_Verify_Server_Cert

  • Master_SSL_Allowed: 表示是否允许使用 SSL 进行主从复制。

    • 如果值为 No,则表示不启用 SSL 加密;
    • 如果值为 Yes,则表示启用 SSL 加密。
    • Ignored如果允许 SSL 连接但副本服务器未启用 SSL 支持

  • Master_SSL_CA_File:

    • 指定用于验证主服务器证书的证书颁发机构(CA)文件的路径。如果 SSL 启用,并且需要验证主服务器证书,则此字段会包含 CA 文件的路径。
  • Master_SSL_CA_Path:

    • 指定用于验证主服务器证书的证书颁发机构(CA)路径的路径。如果 SSL 启用,并且需要验证主服务器证书,则此字段会包含 CA 路径的路径。
  • Master_SSL_Cert:

    • 指定从服务器的 SSL 证书文件的路径。如果 SSL 启用,并且从服务器需要提供证书以进行身份验证,则此字段包含证书文件的路径。
  • Master_SSL_Cipher:

    • 指定在 SSL 通信中使用的密码套件。如果 SSL 启用,则此字段包含用于加密通信的密码套件的详细信息。
  • Master_SSL_Key:

    • 指定从服务器的 SSL 私钥文件的路径。如果 SSL 启用,并且从服务器需要提供私钥以进行身份验证,则此字段包含私钥文件的路径。

这些字段涉及到 MySQL 主从复制中使用 SSL 加密进行安全通信的设置。如果需要使用 SSL 进行主从复制,必须在主从服务器上配置相应的 SSL 证书和密钥,并确保双方配置一致。

Seconds_Behind_Master

Master_Info_File

在从库上存储主库连接信息的文件或表 ,如设置为存储在mysql.slave_master_info表中时,查询该表

SQL_Delay

延迟从库 ,从库延迟主库多少秒

SQL_Remaining_Delay

   当Slave_SQL_Running_State为 时 Waiting until MASTER_DELAY seconds after master executed event,该字段包含剩余延迟秒数。其他时候,该字段为 NULL

Retrieved_Gtid_Set

从库已经接收到的GTID的集合(I/O线程),

如果GTID模式没有开启则为空。

这个值是现在存在或者已经存在在relay log中的GTID集合

Executed_Gtid_Set

已经被写进binlog的GTID的集合(SQL线程),这个值和 系统参数 gtid_executed 相同。也和在该实例上执行 show master status 中的Executed_Gtid_Set 值相同 

Replicate_Rewrite_DB

用于指定需要在主从复制过程中进行数据库名重写的规则

Replicate_Rewrite_DBSHOW SLAVE STATUS 输出中关于主从复制设置的一个字段,用于指定主从复制中需要重写的数据库名。

  • Replicate_Rewrite_DB:
    • 用于指定需要在主从复制过程中进行数据库名重写的规则。该字段的值是一个字符串,其中包含了一组规则,用于将主服务器上的数据库名重写为从服务器上的数据库名。

这个功能主要用于在主从复制环境中更改数据库名的映射关系,从而实现不同的数据库结构。例如,如果在主服务器上有一个数据库名为 source_db,但在从服务器上想要将其重写为 destination_db,就可以使用 Replicate_Rewrite_DB 来实现这样的映射。

示例:

Replicate_Rewrite_DB = source_db -> destination_db

这表示将主服务器上的 source_db 重写为从服务器上的 destination_db

需要注意的是,使用 Replicate_Rewrite_DB 需要谨慎,确保映射关系是正确的,以免导致数据不一致。在配置时,建议详细测试并了解规则的影响。

参考 

show slave status命令输出 

https://dev.mysql.com/doc/refman/5.7/en/show-slave-status.html

https://dev.mysql.com/doc/refman/5.7/en/replica-io-thread-states.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/243465.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

iptables详解

1、介绍 iptables 是一个在 Linux 系统上用于配置和管理防火墙规则的工具。它允许系统管理员定义数据包的过滤规则、网络地址转换(NAT)规则和数据包的网络地址和端口的转发规则。iptables 提供了非常灵活和强大的功能,可以用于保护网络安全、…

Python数据科学视频讲解:Python序列的概念及通用操作

2.10 Python序列的概念及通用操作 视频为《Python数据科学应用从入门到精通》张甜 杨维忠 清华大学出版社一书的随书赠送视频讲解2.10节内容。本书已正式出版上市,当当、京东、淘宝等平台热销中,搜索书名即可。内容涵盖数据科学应用的全流程,…

Python 自动化之收发邮件(一)

imapclient / smtplib 收发邮件 文章目录 imapclient / smtplib 收发邮件前言一、基本内容二、发送邮件1.整体代码 三、获取邮件1.整体代码 总结 前言 简单给大家写个如何用Python进行发邮件和查看邮件教程,希望对各位有所帮助。 一、基本内容 本文主要分为两部分…

为什么FPGA是战略芯片?

FPGA(Field Programmable Gate Array)是在PAL(可编程阵列逻辑)、GAL(通用阵列逻辑)等可编程器件的基础上进一步发展的产物,它是作为一种半定制电路而出现的,既解决了定制电路的不足&…

c++知识总结

一 细碎知识 1.27 # 1.27.1 # pragma once 参考 C++学习笔记之pragma once的理解_pragma once什么意思-CSDN博客https://blog.csdn.net/lynnlee_36/article/details/105322937作用 保证只被编译一次,和#ifndef,#define,#endif功能相同 1.27.2 #if defined(__cplusplus…

1688按关键字搜索工厂数据,商品详情页数据的采集

公共参数 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中,点击获取测试key和secret)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等]cacheStrin…

十个Vue3实用但是冷门的API

文章目录 一、前言二、readonly三、shallowRef四、shallowReactive五、toRef & toRefs5.1、 toRef5.2、toRefs 六、toRaw & markRaw & unref6.1、toRaw6.2、markRaw6.3、unref 七、effectScope & onScopeDispose7.1、收集副作用7.2、全局状态管理 八、provide …

如何防止订单重复支付的?

如图是一个简化的下单流程,首先是提交订单,然后是支付。 支付的话,一般是走支付网关(支付中心),然后支付中心与第三方支付渠道(微信、支付宝、银联)交互。 支付成功以后&#xff0c…

2023-03-27 在vmware 下安装 TrueNAS

Download TrueNAS SCALE - Data Storage Software 安装 TrueNAS 的,官网推荐系统要求: 处理器 记忆 启动装置 贮存 2 核 Intel 64 位或 AMD x86_64 处理器 8 GB 内存 16 GB SSD 引导设备 用于单个存储池的两个相同大小的设备 等待系统安装完成 esxi搭建true…

OpenHarmony应用开发——实现Toast提示功能-鸿蒙物联网应用开发-HarmonyOs应用开发

一、前言 本文我们将实现Toast样式的功能,以便于和用户进行简单、基本的信息交互。需要注意的是,本专栏(OpenHarmony应用开发)不阐述UI设计内容,而主要介绍大家开发中常遇到、常使用的功能问题,以及在物联网…

华为OD试题五(数列描述、矩阵最大值、数据分类)

1. 数列描述 示例代码&#xff1a; # 核心 从第一项 推 第N项目 # 第一项 a0 1 # 推到 第N项 N 4 def fun(a0):# 计算每一项的具体值result left 0cursor 0while cursor < len(a0):if a0[cursor] ! a0[left]:count cursor -leftresult "{}{}".format(str(…

H5开发App应用程序的常见问题以及解决方案

Hello大家好&#xff0c;我是咕噜铁蛋&#xff0c;天冷记得添衣&#xff0c;ok话说回来H5开发成为了一种流行的方式来构建跨平台的移动应用程序。然而&#xff0c;在H5开发App应用程序的过程中&#xff0c;我们常常会遇到一些问题&#xff0c;这些问题可能涉及性能、兼容性、用…

分层解耦—三层架构

目录 三层架构 分层解耦 IOC&DI 三层架构 在进行程序设计以及程序开发时&#xff0c;尽可能让每一个接口、类、方法的职责更单一些&#xff08;单一职责原则&#xff09;。 单一职责原则&#xff1a;一个类或一个方法&#xff0c;就只做一件事情&#xff0c;只管一块功…

MySQL主从复制与读写分离实验

实验一、MySQL主从服务器搭建 实验前准备 Master服务器&#xff1a;192.168.188.14 mysql5.7 Slave服务器1&#xff1a;192.168.188.15 mysql5.7 Slave服务器2&#xff1a;192.168.188.16 mysql5.7 关闭虚拟机防火墙 systemctl stop firewalld setenforce 0 主服务器准…

线性回归问题

目录 一、线性回归关键思想 1、线性模型 2、基础优化算法 二、线性回归的从零开始实现 1、生成数据集 2、读取数据集 3、初始化模型参数 4、定义模型 5、定义损失函数 6、定义优化算法 7、训练 三、线性回归的简洁实现 1、生成数据集 2、读取数据集 3、定义模型…

Java集合大总结——Map的简单使用

现实需求 现实生活与开发中&#xff0c;我们常会看到这样的一类集合&#xff1a;用户ID与账户信息、学生姓名与考试成绩、IP地址与主机名等&#xff0c;这种一一对应的关系&#xff0c;就称作映射。Java提供了专门的集合框架用来存储这种映射关系的对象&#xff0c;即java.uti…

Cobalt Strike四种提权方法

简介 Cobalt Strike是一款基于java的渗透测试神器&#xff0c;常被业界人称为CS神器。自3.0以后已经不在使用Metasploit框架而作为一个独立的平台使用&#xff0c;分为客户端与服务端&#xff0c;服务端是一个&#xff0c;客户端可以有多个&#xff0c;非常适合团队协同作战&a…

【UML】组件图中的供需接口与面向对象中的接口

UML&#xff08;统一建模语言&#xff09;组件图中的“供接口”&#xff08;Provided Interface&#xff09;和“需接口”&#xff08;Required Interface&#xff09;与面向对象编程中的接口概念有关联&#xff0c;但它们在应用上有所区别。 下面解释两者的关系&#xff1a; …

Restormer技术点小结

1. 解决cnn的不足&#xff1a; 1&#xff09;感受野有限 2&#xff09;输入尺寸固定 2. 解决transform的不足&#xff1a; 1&#xff09;计算复杂度随着空间分辨率的增加而二次增长 3. 优势结构&#xff1a;MDTA(Multi-Dconv Head Transposed Attention)和GDFN( Gated-Dco…

Redis新数据类型-Bitmaps

目录 Bitmaps 简介 命令 1. setbit (1) 格式 (2) 实例 2. getbit (1) 格式 (2) 实例 3. bitcount (1) 格式 (2) 实例 4. bitop (1) 格式 (2) 实例 我的其他博客 Bitmaps 简介 Bitmaps 是 Redis 的一种新数据类型&#xff0c;它是一种用于存储位信息的数据结构&…