MySQL查看主从复制信息详解

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 event
                  Source_Host: 127.0.0.1
                  Source_User: root
                  Source_Port: 13000
                Connect_Retry: 1
              Source_Log_File: master-bin.000001
          Read_Source_Log_Pos: 927
               Relay_Log_File: slave-relay-bin.000002
                Relay_Log_Pos: 1145
        Relay_Source_Log_File: master-bin.000001
           Replica_IO_Running: Yes
          Replica_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_Source_Log_Pos: 927
              Relay_Log_Space: 1355
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Source_SSL_Allowed: No
           Source_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: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
             Source_Server_Id: 1
                  Source_UUID: 73f86016-978b-11ee-ade5-8d2a2a562feb
             Source_Info_File: mysql.slave_master_info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
    Replica_SQL_Running_State: Replica has read all relay log; waiting for more updates
           Source_Retry_Count: 10
                  Source_Bind:
      Last_IO_Error_Timestamp:
     Last_SQL_Error_Timestamp:
               Source_SSL_Crl:
           Source_SSL_Crlpath:
           Retrieved_Gtid_Set: 73f86016-978b-11ee-ade5-8d2a2a562feb:1-3
            Executed_Gtid_Set: 73f86016-978b-11ee-ade5-8d2a2a562feb:1-3
                Auto_Position: 1
         Replicate_Rewrite_DB:
                 Channel_Name:
           Source_TLS_Version:
       Source_public_key_path:
        Get_Source_public_key: 0
            Network_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.mfbz.cn/a/556643.html

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

相关文章

C# - 反射动态添加/删除Attribute特性

API: TypeDescriptor.AddAttributes TypeDescriptor.GetAttributes 注意:TypeDescriptor.AddAttributes添加的特性需要使用 TypeDescriptor.GetAttributes获取 根据api可以看到,该接口不仅可以给指定类(Type)添加特性&#xf…

CLSRSC-400: A system reboot is required to continue installing

RHEL 7.9ORACLE RAC 12.2.0.1.0,在运行root.sh脚本时,出现CLSRSC-400: A system reboot is required to continue installing报错 # /u01/app/12.2.0/grid/root.sh Performing root user operation.The following environment variables are set as:ORA…

【吊打面试官系列】Java高并发篇 -为什么使用 Executor 框架比使用应用创建和管理线程好?

大家好,我是锋哥。今天分享关于 【为什么使用 Executor 框架比使用应用创建和管理线程好?】面试题,希望对大家有帮助; 为什么使用 Executor 框架比使用应用创建和管理线程好? 为什么要使用 Executor 线程池框架 1、每…

MySQL 锁机制全面解析

目录 1. MySQL的锁类型1.1 全局锁1.2 表锁1.3 行锁1.4 共享锁(读锁)1.5 排它锁(写锁)1.6 死锁 2 乐观锁和悲观锁2.1 乐观锁2.2 悲观锁 3 意向锁4 间隙锁5 临键锁6. 事务隔离级别对锁的影响6.1 读未提交(Read Uncommitt…

Day92:系统攻防-WindowsLinux远程探针本地自检任意执行权限提升入口点

目录 操作系统-远程漏扫-Nessus&Nexpose&Goby Nessus Nexpose 知识点: 1、远程漏扫-Nessus&Nexpose&Goby 2、本地漏扫-Wesng&Tiquan&Suggester 3、利用场景-远程利用&本地利用&利用条件 操作系统-远程漏扫-Nessus&Nexpose&a…

#LLM入门|RAG#3.5_基于文档的问答

大语言模型(LLM)构建的问答系统,通过整合用户文档,提供个性化和专业化回答。系统可检索内部文档或产品说明书,结合语言模型生成精准答案。 这种方法让语言模型利用外部文档专业信息,显著提升回答的质量和适…

RedHat9 KVM虚拟技术

以下有使用RedHat9单独的虚拟机也有使用RHEL9学员练习机和RHEL7学员练习机 KVM虚拟技术介绍 Linux的KVM(Kernel-based Virtual Machine)虚拟技术是一种基于Linux内核的虚拟化解决方案。它允许在单个物理服务器上创建和运行多个隔离的虚拟机,每个虚拟机都有自己的操作系统和…

常见嵌入式存储器学习

这里写目录标题 1. FPGA内部存储器1.1 RAM1.2 ROM 2. 外部存储器 1. FPGA内部存储器 1.1 RAM RAM即随机存取存储器(Random Acccess Memory),数据不是线性依次存储,可以自由指定地址进行数据读写。RAM掉电数据丢失,速…

Docker 镜像仓库常见命令

Docker Registry (镜像仓库) 常用命令 docker login 功能:登录到一个 Docker 镜像仓库,如果没有指定镜像仓库的地址,默认就是官方的 Docker Hub 仓库。 语法: docker login [options] [server]选项: -u:登…

java生成数据库数据到excel当做下拉选择,copy就完事~

背景:由于需要下载模板,模板包含下拉选择框,但是下拉选择框不想手写,并且需要从数据库读取,由于直接设置excel会有单元格最大255个字符长度限制,所以用到以下部分代码。 思路:由于数据模板在sh…

MySQL 的事务概念

事务概念 MySQL事务是一个或者多个的数据库操作,要么全部执行成功,要么全部失败回滚。 事务是通过事务日志来实现的,事务日志包括:redo log和undo log。 事务状态 事务有以下五种状态: 活动的部分提交的失败的中止的…

字母加密(C语言)

一、题目; 为使电文保密,往往按一定规律将其转换成密码,收报人再按约定的规律将其译回原文。例如,可以按以下规律将电文变成密码:将字母A变成字母E,a变成e,即变成其后的第4个字母,W…

可以与 FastAPI 不分伯仲的 Python 著名的 Web 框架

正如你所理解的,任何领域都不可能停止进步,不断使用相同的工具意味着不思进取。这一点在信息技术领域,尤其是网络开发行业非常明显。 关于网络框架,不论是 Django 和 Flask 等传统框架还是 Python 的新型高级框架,一直…

开源项目|使用go语言搭建高效的环信 IM Rest接口(附源码)

项目背景 环信 Server SDK 是对环信 IM REST API 的封装, 可以节省服务器端开发者对接环信 API 的时间,只需要配置自己的 App Key 相关信息即可使用。 环信目前提供java和PHP版本的Server SDK,此项目使用go语言对环信 IM REST API 进行封装…

B端:再探列表页,这20个组件能让列表页功能完备,体验过关。

有很多小伙伴反馈设计列表页的时候,好看是好看了,但是用户体验不佳,处理数据十分不方便,这样好看也就失去了意义,贝格前端工场分析这个原因大概率是没有用好列表页的组件,丢三落四的情况比较多导致的&#…

RK3588 Android13 鼠标风格自定义动态切换

前言 电视产品,客户提供了三套鼠标图标过来,要求替换系统中原有丑陋风格且要支持动态切换, 并且在 TvSetting 中要有菜单,客户说啥就是啥呗,开整。 效果图 test framework 部分修改文件清单 png 为鼠标风格资源图片,这里就不提供了,可自由找一个替换一下就行 framew…

「Word 论文排版」插入分节符导致word转PDF后出现空白页

问题 word转PDF后出现空白页 解决 但是此方法会让页面页脚标记出错 TODO 如下图所示 在论文目录后有一个分节符,转成PDF之后就多了一个空白页 文件-打印-页面设置-选中封面那一页-版式-从偶数页开始 再导出空白页就没了

旅游陪同翻译难吗, 旅游翻译英译中哪家好?

近来,随着中国旅游业的蓬勃发展,旅游陪同翻译的需求也水涨船高,这些专业的翻译服务者为中外游客搭建起友谊的桥梁,引领他们共同探索中国这片古老而神秘的土地 。那么,旅游陪同翻译英译中难吗?我们如何在众多…

iTwin Capture Modeler-23中文版下载地址及安装教程

文章目录 一、iTwin Capture Modeler23中文版安装教程二、iTwin Capture Modeler23中文版下载地址一、iTwin Capture Modeler23中文版安装教程 1. 解压安装包。订阅专栏(可获取专栏内所有文章阅读权限与软件安装包)后,从文末获取安装包解压,如下所示: 2. 右击安装包,选择以…

MQ技术选型

消息队列中间件是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋等问题。它可以实现高性能、高可用、可伸缩和最终一致性架构,是大型分布式系统不可缺少的中间件。 RabbitMQ 特点: RabbitMQ 相当轻量级的消息队列&#xff…
最新文章