MySQL查看主从复制信息详解

embedded/2024/9/25 8:57:27/

SHOW {REPLICA | SLAVE} STATUS [FOR CHANNEL channel]

该语句提供复制线程的关键参数的状态信息。从 MySQL 8.0.22 开始,请使用 SHOW REPLICA STATUS 代替 SHOW SLAVE STATUS,后者在那个版本已被弃用。在 MySQL 8.0.22 之前的版本中,使用 SHOW SLAVE STATUS。此语句要求具有 REPLICATION CLIENT 权限(或弃用的 SUPER 权限)。

SHOW REPLICA STATUS 是非阻塞的。并行运行时,与 STOP REPLICA 同时运行,SHOW REPLICA STATUS 在不等待 STOP REPLICA 完成关闭复制 SQL(应用)线程或复制 I/O(接收)线程(或两者)的情况下返回。这允许在监控和其他应用程序中使用,在这些应用中,从 SHOW REPLICA STATUS 获得即时响应比确保返回的是最新数据更重要。在 MySQL 8.0.22 版本,SLAVE 关键词已被 REPLICA 替换。

如果使用 mysql 客户端发出此语句,可以使用 \G 语句终止符而不是分号来获得更易读的垂直布局:

mysql> SHOW REPLICA STATUS\G
*************************** 1. row ***************************Replica_IO_State: Waiting for source to send eventSource_Host: 127.0.0.1Source_User: rootSource_Port: 13000Connect_Retry: 1Source_Log_File: master-bin.000001Read_Source_Log_Pos: 927Relay_Log_File: slave-relay-bin.000002Relay_Log_Pos: 1145Relay_Source_Log_File: master-bin.000001Replica_IO_Running: YesReplica_SQL_Running: YesReplicate_Do_DB:Replicate_Ignore_DB:Replicate_Do_Table:Replicate_Ignore_Table:Replicate_Wild_Do_Table:Replicate_Wild_Ignore_Table:Last_Errno: 0Last_Error:Skip_Counter: 0Exec_Source_Log_Pos: 927Relay_Log_Space: 1355Until_Condition: NoneUntil_Log_File:Until_Log_Pos: 0Source_SSL_Allowed: NoSource_SSL_CA_File:Source_SSL_CA_Path:Source_SSL_Cert:Source_SSL_Cipher:Source_SSL_Key:Seconds_Behind_Source: 0
Source_SSL_Verify_Server_Cert: NoLast_IO_Errno: 0Last_IO_Error:Last_SQL_Errno: 0Last_SQL_Error:Replicate_Ignore_Server_Ids:Source_Server_Id: 1Source_UUID: 73f86016-978b-11ee-ade5-8d2a2a562febSource_Info_File: mysql.slave_master_infoSQL_Delay: 0SQL_Remaining_Delay: NULLReplica_SQL_Running_State: Replica has read all relay log; waiting for more updatesSource_Retry_Count: 10Source_Bind:Last_IO_Error_Timestamp:Last_SQL_Error_Timestamp:Source_SSL_Crl:Source_SSL_Crlpath:Retrieved_Gtid_Set: 73f86016-978b-11ee-ade5-8d2a2a562feb:1-3Executed_Gtid_Set: 73f86016-978b-11ee-ade5-8d2a2a562feb:1-3Auto_Position: 1Replicate_Rewrite_DB:Channel_Name:Source_TLS_Version:Source_public_key_path:Get_Source_public_key: 0Network_Namespace:

从 MySQL 8.0.27 开始,可以在 CHANGE REPLICATION SOURCE TO 语句上设置 GTID_ONLY 选项,以停止复制通道在复制元数据存储库中持久化文件名和文件位置。通过这种设置,源二进制日志文件和中继日志文件的文件位置在内存中跟踪。SHOW REPLICA STATUS 语句仍在常规使用中显示文件位置。然而,由于文件位置不在连接元数据存储库和应用程序元数据存储库中定期更新,除了在少数情况下,如果服务器重新启动,文件位置可能会过期。

对于服务器启动后具有 GTID_ONLY 设置的复制通道,源二进制日志文件的读取和应用文件位置(Read_Source_Log_Pos 和 Exec_Source_Log_Pos)被设置为零,文件名(Source_Log_File 和 Relay_Source_Log_File)被设置为 INVALID。中继日志文件名(Relay_Log_File)根据 relay_log_recovery 设置设定,要么是在服务器启动时创建的新文件,要么是存在的第一个中继日志文件。文件位置(Relay_Log_Pos)设置为位置 4,并使用 GTID 自动跳过跳过文件中已经应用的任何事务。

当接收线程接触源并获得有效位置信息时,读取位置(Read_Source_Log_Pos)和文件名(Source_Log_File)用正确的数据更新并变得有效。当应用程序线程从源应用交易或跳过已执行的交易时,执行位置(Exec_Source_Log_Pos)和文件名(Relay_Source_Log_File)用正确的数据更新并变得有效。在那时,中继日志文件位置(Relay_Log_Pos)也得到更新。

以下列表描述了 SHOW REPLICA STATUS 返回的字段。

- Replica_IO_State
  - 复制 I/O(接收)线程的 SHOW PROCESSLIST 输出的 State 字段的副本。这告诉你线程正在做什么:尝试连接到源、等待来自源的事件、重新连接到源等等。有关可能状态的列表,请参阅第10.14.5节,“复制 I/O(接收)线程状态”。
- Source_Host
  - 连接到的主库的主机。
- Source_User
  - 用于连接到源的帐户的用户名。
- Source_Port
  - 用于连接到源的端口。
- Connect_Retry
  - 连接重试之间的秒数(默认60)。这可以使用 CHANGE REPLICATION SOURCE TO 语句(从 MySQL 8.0.23 开始)或 CHANGE MASTER TO 语句(在 MySQL 8.0.23 之前)进行设置。
- Source_Log_File
  - I/O(接收)线程当前正在读取的源二进制日志文件的名称。对于服务器启动后具有 GTID_ONLY 设置的复制通道,此设置为 INVALID。当副本联系源时,它将得到更新。
- Read_Source_Log_Pos
  - I/O(接收)线程读取的当前源二进制日志文件中的位置。对于服务器启动后具有 GTID_ONLY 设置的复制通道,此设置为零。当副本联系源时,它将得到更新。
- Relay_Log_File
  - SQL(应用)线程当前正在读取和执行的中继日志文件的名称。
- Relay_Log_Pos
  - SQL(应用)线程已经读取和执行的当前中继日志文件中的位置。
- Relay_Source_Log_File
  - SQL(应用)线程执行的最新事件所在的源二进制日志文件的名称。对于服务器启动后具有 GTID_ONLY 设置的复制通道,此设置为 INVALID。当执行事务或跳过事务时,它将得到更新。
- Replica_IO_Running
  - 复制 I/O(接收)线程是否已启动并已成功连接到源。在内部,此线程的状态由以下三个值之一表示:
    - MYSQL_REPLICA_NOT_RUN。复制 I/O(接收)线程未运行。对于此状态,Replica_IO_Running 是 No。
    - MYSQL_REPLICA_RUN_NOT_CONNECT。复制 I/O(接收)线程正在运行,但未连接到复制源。对于此状态,Replica_IO_Running 是 Connecting。
    - MYSQL_REPLICA_RUN_CONNECT。复制 I/O(接收)线程正在运行,并已连接到复制源。对于此状态,Replica_IO_Running 是 Yes。
- Replica_SQL_Running
  - 复制 SQL(应用程序)线程是否已启动。
- Replicate_Do_DB, Replicate_Ignore_DB
  - 用 --replicate-do-db 和 --replicate-ignore-db 选项或 CHANGE REPLICATION FILTER 语句指定的任何数据库的名称。如果使用了 FOR CHANNEL 子句,则显示特定于通道的复制过滤器。否则,显示每个复制通道的复制过滤器。
- 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 选项或 CHANGE REPLICATION FILTER 语句指定的任何表的名称。如果使用了 FOR CHANNEL 子句,则显示特定于通道的复制过滤器。否则,显示每个复制通道的复制过滤器。
- Last_Errno, Last_Error
  - 这些列是 Last_SQL_Errno 和 Last_SQL_Error 的别名。
  - 发出 RESET MASTER 或 RESET REPLICA 将重置这些列中显示的值。
  - 注意:当复制 SQL 线程遇到错误时,它首先报告错误,然后停止 SQL 线程。这意味着,在 SHOW REPLICA STATUS 显示非零值为 Last_SQL_Errno 的小窗口期内,即使 Replica_SQL_Running 仍显示 Yes。
- Skip_Counter
  - sql_slave_skip_counter 系统变量的当前值。可以通过 SET GLOBAL sql_slave_skip_counter 语句设置。
- Exec_Source_Log_Pos
  - 复制 SQL 线程已经读取和执行的当前源二进制日志文件的位置,标记下一个要处理的事务或事件的开始。对于服务器启动后具有 GTID_ONLY 设置的复制通道,此设置为零。当执行事务或跳过事务时,它将得到更新。
  - 可以在启动新副本时将此值与 CHANGE REPLICATION SOURCE TO 语句的 SOURCE_LOG_POS 选项(从MySQL 8.0.23 开始)或 CHANGE MASTER TO 语句的 MASTER_LOG_POS 选项(在MySQL 8.0.23 之前)一起使用,以便新副本从此位置开始读取。源的二进制日志中由(Relay_Source_Log_File, Exec_Source_Log_Pos)给出的坐标对应于中继日志中的(Relay_Log_File, Relay_Log_Pos)给出的坐标。
  - 从中继日志中已执行的事务序列的不一致性可能导致此值为“低水位”。换句话说,在位置之前出现的事务保证已提交,但在位置之后的事务可能已提交或未提交。如果需要纠正这些差距,请使用 START REPLICA UNTIL SQL_AFTER_MTS_GAPS。
- Relay_Log_Space
  - 所有现有中继日志文件的总合并大小。
- Until_Condition, Until_Log_File, Until_Log_Pos
  - START REPLICA 语句中 UNTIL 子句中指定的值。
  - Until_Condition 有以下值:
    - 如果没有指定 UNTIL 子句,则为 None。
    - 如果副本正在读取源的二进制日志中的给定位置,则为 Source。
    - 如果副本正在读取其中继日志中的给定位置,则为 Relay。
    - 如果复制 SQL 线程正在处理事务,直到它达到 gtid_set 中列出的第一个事务的 GTID 为止,则为 SQL_BEFORE_GTIDS。
    - 如果复制线程正在处理所有事务,直到在 gtid_set 中列出的最后一个事务被两个线程处理为止,则为 SQL_AFTER_GTIDS。
    - 如果多线程副本的 SQL 线程正在运行,直到在中继日志中不再发现任何间隙为止,则为 SQL_AFTER_MTS_GAPS。
  - Until_Log_File 和 Until_Log_Pos 指示定义复制 SQL 线程停止执行的坐标的日志文件名称和位置。
  - 有关 UNTIL 子句的更多信息。
- Source_SSL_Allowed, Source_SSL_CA_File, Source_SSL_CA_Path, Source_SSL_Cert, Source_SSL_Cipher, Source_SSL_CRL_File, Source_SSL_CRL_Path, Source_SSL_Key, Source_SSL_Verify_Server_Cert
  - 这些字段显示副本连接到源时使用的 SSL 参数(如果有)。
  - Source_SSL_Allowed 有以下值:
    - 如果允许与源建立 SSL 连接,则为 Yes。
    - 如果不允许与源建立 SSL 连接,则为 No。
    - 如果允许建立 SSL 连接,但副本服务器没有启用 SSL 支持,则为 Ignored。
  - 其他 SSL 相关字段的值对应于 CHANGE REPLICATION SOURCE TO 语句的 SOURCE_SSL_* 选项的值(从 MySQL 8.0.23 开始),或 CHANGE MASTER TO 语句的 MASTER_SSL_* 选项的值(在 MySQL 8.0.23 之前)。
- Seconds_Behind_Source
  - 该字段指示副本“延迟”多少:
    - 当副本正在积极处理更新时,该字段显示副本上的当前时间戳与副本上正在处理的事件的源原始时间戳之间的差异。
    - 当副本当前没有正在处理的事件时,此值为 0。
  - 本质上,这个字段测量复制 SQL(应用程序)线程和复制 I/O(接收器)线程之间的时间差异,以秒为单位。如果源和副本之间的网络连接很快,复制接收器线程与源非常接近,因此该字段是衡量复制应用程序线程与源相比有多晚的良好近似值。如果网络慢,这不是一个好的近似值;复制应用程序线程很可能经常赶上慢读取的复制接收线程,所以 Seconds_Behind_Source 经常显示 0 的值,即使复制接收线程与源相比是晚的。换句话说,这一列只对快速网络有用。
  - 即使源和副本的时钟时间不完全相同,这种时间差异计算


http://www.ppmy.cn/embedded/8345.html

相关文章

实现流程审批监听器——详解Spring框架下的监听器设计与关键技术

在企业级应用开发中,业务流程管理(BPM)系统是实现工作流自动化、提升业务效率的关键工具。本篇博客将深入剖析一个名为ProcessApprovalListener的Spring组件,它是流程审批监听器的具体实现,利用了Spring框架、Java表达式(Expression)、事务管理(Transaction Management…

WP-AutoPostPro 汉化版: WordPress自动采集发布插件

WP-AutoPostPro 是目前最好用的WordPress自动采集发布插件,最大的特点是可以采集来自于任何网站的内容并自动发布到你的WordPress站点。真正做到可以采集任何网站的内容并自动发布,采集过程完全自动进行无需人工干预,并提供内容过滤、HTML标签…

Wpf 使用 Prism 实战开发Day19

待办事项功能页面完善以及优化 概要: 由于待办事项功能页,数据已正常渲染出来了。但页面新增,查询,修改,删除等功能还未实现。本章节来实现页面的请求后台实现CURD(增删改查) 一.待办事项查询…

centos 9 安装mysql 到系统指定目录

在CentOS 9上安装MySQL并将其安装到系统指定目录的步骤如下: 首先,确认已经正确配置了CentOS 9的网络连接。 打开终端并使用root用户登录。 添加MySQL Yum存储库。执行以下命令: dnf install -y https://dev.mysql.com/get/mysql80-communi…

6、掌握对象在内存中的分配与变迁

6.1、前文回顾 在昨天的文章中,我们已经介绍了一些关于对象分配的基础知识。现在,大家应该对这些概念有了一定的了解。在编程中,我们创建的对象通常分为两类: 短期存活的对象:这类对象在Java堆内存中分配后,会迅速使用完毕并被垃圾回收器回收。长期存活的对象:这类对象…

腾讯EdgeOne产品测评体验——多重攻击实战验证安全壁垒:DDoS攻击|CC压测|Web漏洞扫描|SQL注入

腾讯EdgeOne产品测评体验——实战验证安全壁垒:DDoS攻击|CC压测|Web漏洞扫描|SQL注入 写在最前面一、产品概述1.1 什么是边缘安全加速平台 EO?1.2 EdgeOne产品功能 二、准备工作2.1 选择:NS(Name Server)接入模式或 CN…

设计模式(021)行为型之访问者模式

访问者模式是一种行为型设计模式,它可以在不修改现有代码结构的情况下,为复杂的对象结构添加新的操作。该模式将数据结构和数据操作进行分离,使得数据结构可以独立于操作进行变化,同时也可以在不改变操作的前提下增加新的操作。 在…

flutter 二维数组赋值问题

class ExpCellDetailP0J0 {int num;//序号SizeDetail sizeDetail; //格口尺寸参数bool isSelected; //是否选中SelectFileData backFillFile;//本地格口规格设置弹窗里填写后的回填中显示用的格口图片、视频文件ExpCellDetailP0J0({this.num,this.sizeDetail,this.isSelected …