mysql 主从同步排查和处理 Slave_IO、Slave_SQL

目录

查看主从是否同步

详解Slave_IO、Slave_SQL 

判断主从完全同步

各个 Log_File 和 Log_Pos的关系

修复命令


查看主从是否同步

show slave status;

Slave_IO_Running、Slave_SQL_Running,这两个值是Yes表示正常,No是异常

使用竖排显示:

Name                         |Value                                                 |
-----------------------------+------------------------------------------------------+
Slave_IO_State               |Waiting for master to send event                      |
Master_Host                  |192.168.20.161                                        |
Master_User                  |root                                                  |
Master_Port                  |3306                                                  |
Connect_Retry                |60                                                    |
Master_Log_File              |mysql-bin.004651                                      |
Read_Master_Log_Pos          |300004719                                             |
Relay_Log_File               |xxxx-relay-bin.002999                                 |
Relay_Log_Pos                |300004932                                             |
Relay_Master_Log_File        |mysql-bin.004651                                      |
Slave_IO_Running             |Yes                                                   |
Slave_SQL_Running            |Yes                                                   |
Replicate_Do_DB              |alisaas                                               |
Replicate_Ignore_DB          |mysql,information_schema,performation_schema,sys      |
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          |300004719                                             |
Relay_Log_Space              |300005190                                             |
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             |161                                                   |
Master_UUID                  |000fe6d4-25cd-21eb-a102-1111efa99c99                  |
Master_Info_File             |/sata01/data/mysql/master.info                        |
SQL_Delay                    |0                                                     |
SQL_Remaining_Delay          |                                                      |
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           |                                                      |
Executed_Gtid_Set            |                                                      |
Auto_Position                |0                                                     |
Replicate_Rewrite_DB         |                                                      |
Channel_Name                 |                                                      |
Master_TLS_Version           |                                                      |

详解Slave_IO、Slave_SQL 

Slave_IO线程负责把主库的bin日志(Master_Log)内容,抄写到从库的中继日志上(Relay_Log)。
Slave_SQL线程负责把中继日志上的语句在从库上执行一遍
 

Slave_IO线程相对比较简单,一般不容易出错。如果Slave_IO_Running显示为No,多为网络连接不上权限不够等环境问题。

Slave_SQL线程相对容易出错,例如人为手动的在从库插入一条数据,造成主从不一致。但此时两个线程的状态仍然是正常的。等到主库也插入一条同样的数据时,通知从库做相同操作,从库会出现主键重复的错误。此时Slave_SQL_Running的状态会变为No,而Last_SQL_ErrorLast_SQL_Error_Timestamp会记录错误的原因和发生时间

Slave_SQL线程会停止后续的SQL语句执行,因为它意识到往后执行会导致错误修复的难度增加。但Slave_IO线程不会停止,会继续抄log的工作。所以中继log依然是最新的。

这时候Master_Log_File: mysql-bin.000002 和  Relay_Master_Log_File: mysql-bin.000001之间就产生了偏差。

以上面为例,主库的日志已经写到了 mysql-bin.000001,而从库依然停留在 mysql-bin.000002等待人工修复错误。

那么当错误修复后,只需用stop slavestart slave重启下同步。Slave_SQL线程会重新的尝试工作。

如果没有问题,那么Slave_SQL的状态会变回Yes。但此时主从并没有完全同步,需要一点时间

判断主从完全同步

若完全同步,可通过以下几条判断:

1. 首先 Master_Log_FileRelay_Master_Log_File 所指向的文件必须一致。

例如本案例中是mysql-bin.004651

2. Read_Master_Log_Pos = Exec_Master_Log_Pos 时,则表明 slave 和 master 处于完全同步的状态。例如本案例中是:300004719

Read_Master_Log_Pos 是io读到的位置,Exec_Master_Log_Pos 是sql执行到的位置。

1和2合并即:

Relay_Master_Log_File = Master_Log_File

Read_Master_Log_Pos = Exec_Master_Log_Pos

3. 此时,有几个字段值如下:

Slave_IO_State: Waiting for master to send event。意思是等待主库送事件过来

Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it。意思是从库已经读完所有的relay log,等待从库的IO线程继续更新。

各个 Log_File 和 Log_Pos的关系

1) The position, ON THE MASTER, from which the I/O thread is reading:

Master_Log_File/Read_Master_Log_Pos. -----相对于主库,从库读取主库的二进制日志的位置,是IO线程

2) The position, IN THE RELAY LOGS, at which the SQL thread is executing:

Relay_Log_File/Relay_Log_Pos ----相对于从库,是从库的sql线程执行到的位置

3) The position, ON THE MASTER, at which the SQL thread is executing:

Relay_Master_Log_File/Exec_Master_Log_Pos ----相对于主库,是从库的sql线程执行到的位置

show slave status\G中的Read_Master_Log_Pos和Relay_Log_Pos的(大小)关系_lovely可爱欧辰的博客-CSDN博客

修复命令

执行以下3条命令。可以在navicat、dbeaver、或者cmd窗口,都行。

stop slave;
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
start slave;
 

一次不行,多执行几次。或者修改数值1,改成2,或者3。前提是你知道怎么玩,不会玩的话,就用1,多执行几次。

Mysql主从错误之Slave_SQL_Running No - 简书

关于set global sql_slave_skip_counter=N 命令的解释_Mr. Sun_的博客-CSDN博客

Mysql主从同步时Slave_IO_Running:Connecting ; Slave_SQL_Running:Yes的情况故障排除_MegaBytes的博客-CSDN博客

Mysql主从同步时Slave_IO_Running:Connecting ; Slave_SQL_Running:Yes的情况故障排除_爽姐想退休的博客-CSDN博客

show slave status判断主从同步状态_chagaostu的博客-CSDN博客

mysql查看主从同步状态的方法_mysql_Full Stack Developme-华为云开发者联盟

MySQL :: MySQL 5.7 Reference Manual :: 16.1.2 Setting Up Binary Log File Position Based Replication

=========================分割线============================ 

文章到此已经结束,以下是紫薯布丁

show slave status;

stop slave;
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
start slave;

Name                         |Value                                                 |
-----------------------------+------------------------------------------------------+
Slave_IO_State               |Waiting for master to send event                      |
Master_Host                  |192.168.20.161                                        |
Master_User                  |root                                                  |
Master_Port                  |3306                                                  |
Connect_Retry                |60                                                    |
Master_Log_File              |mysql-bin.004651                                      |
Read_Master_Log_Pos          |300004719                                             |
Relay_Log_File               |xxxx-relay-bin.002999                                 |
Relay_Log_Pos                |300004932                                             |
Relay_Master_Log_File        |mysql-bin.004651                                      |
Slave_IO_Running             |Yes                                                   |
Slave_SQL_Running            |Yes                                                   |
Replicate_Do_DB              |alisaas                                               |
Replicate_Ignore_DB          |mysql,information_schema,performation_schema,sys      |
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          |300004719                                             |
Relay_Log_Space              |300005190                                             |
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             |161                                                   |
Master_UUID                  |000fe6d4-25cd-21eb-a102-1111efa99c99                  |
Master_Info_File             |/sata01/data/mysql/master.info                        |
SQL_Delay                    |0                                                     |
SQL_Remaining_Delay          |                                                      |
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           |                                                      |
Executed_Gtid_Set            |                                                      |
Auto_Position                |0                                                     |
Replicate_Rewrite_DB         |                                                      |
Channel_Name                 |                                                      |
Master_TLS_Version           |                                                      |

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 CSS 自定义属性

我们常见的网站日夜间模式的变化,其实用到了 css 自定义属性。 CSS 自定义属性(也称为 CSS 变量)是一种在 CSS 中预定义和使用的变量。它们提供了一种简洁和灵活的方式来通过多个 CSS 规则共享相同的值,使得样式更易于维护和修改。…

小研究 - 主动式微服务细粒度弹性缩放算法研究(一)

微服务架构已成为云数据中心的基本服务架构。但目前关于微服务系统弹性缩放的研究大多是基于服务或实例级别的水平缩放,忽略了能够充分利用单台服务器资源的细粒度垂直缩放,从而导致资源浪费。为此,本文设计了主动式微服务细粒度弹性缩放算法…

windows端口占用

1.查看当前端口被哪个进程占用了(进入到CMD中) netstat -ano|findstr "8990"输出结果为: TCP 127.0.0.1:8990 0.0.0.0:0 LISTENING 2700 我们发现8990端口被2700进程占用了 2.基于进程号找进程名称 tasklist|findstr "2700&qu…

【LeetCode每日一题】——566.重塑矩阵

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 矩阵 二【题目难度】 简单 三【题目编号】 566.重塑矩阵 四【题目描述】 在 MATLAB 中&…

【leetcode】977. 有序数组的平方(easy)

给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 示例 1: 输入:nums [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释:平方后,数组变为 […

小红书运营推广方法分享

大家好,我是网媒智星,今天跟大家讨论一下小红书的运营推广方法,总结了七点经验分享给大家。 首先,让我们了解一下什么是热门文案。热门文案可从以下三个方面来定义: 1. 阅读量:如果一篇小红书的阅读量达到上…

【RabbitMQ】golang客户端教程1——HelloWorld

一、介绍 本教程假设RabbitMQ已安装并运行在本机上的标准端口(5672)。如果你使用不同的主机、端口或凭据,则需要调整连接设置。如果你未安装RabbitMQ,可以浏览我上一篇文章Linux系统服务器安装RabbitMQ RabbitMQ是一个消息代理&…

3,this指针、深拷贝浅拷贝、namespace的使用

3,this指针、深拷贝浅拷贝、namespace的使用 3.1this指针3.2深拷贝和浅拷贝3.3namespace的使用 3.1this指针 定义:当前类指向自己地址的常量指针 指针被const修饰,指针指向的内容不能修改 this指针-》类 对象 占不占用大小? this…

《MySQL 实战 45 讲》课程学习笔记(四)

深入浅出索引 索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。 索引的常见模型 哈希表 哈希表是一种以键 - 值(key-value)存储数据的结构,我们只要输入待查找的值即 key,就可以找到其对应的值即 Val…

docker中涉及的挂载点总结

文章目录 1.场景描述2. 容器信息在主机上位置3. 通过docker run 命令4、通过Dockerfile创建挂载点5、容器共享卷(挂载点)6、最佳实践:数据容器 1.场景描述 在介绍VOLUME指令之前,我们来看下如下场景需求: 1&#xff…

xshell连接liunx服务器身份验证不能选择password

ssh用户身份验证不能选择password 只能用public key的解决办法 问题现象 使用密码通过Workbench或SSH方式(例如PuTTY、Xshell、SecureCRT等)远程登录ECS实例时,遇到服务器禁用了密码登录方式错误. 可能原因 该问题是由于SSH服务对应配置文件/etc/ssh/sshd_config中…

路由器工作原理

路由器原理 路由概述 路由:跨越从源主机到目标主机的一个互联网络来转发数据包的过程。(为数据包选择路径的过程) 作用:路由器是连接不同网段的。 转发依据: 路由表:路径选择全看路由表,根…

蓝桥杯2018省赛全球变暖dfs

全球变暖 问题描述格式输入格式输出样例输入样例输出评测用例规模与约定解析参考程序 问题描述 格式输入 格式输出 输出一个整数 样例输入 样例输出 1 评测用例规模与约定 最大运行时间:1s最大运行内存: 256M 解析 采用dfs的方式进行搜索,首先输入地…

【C语言】—— __attribute__((fallthrough))

__attribute__((fallthrough)) 是一个在编译器中使用的特性,用于指示在 switch 语句中的 case 标签中故意省略 break 语句时的意图。它告诉编译器,故意省略 break 是有意为之,而不是出现了错误或遗漏。 当使用 switch 语句时,通常…

Xshell使用是出现全黑或全白问题

Xshell使用是出现全黑或全白问题,这是我实际遇到的问题如图。 解决方式: 设置字体 解决成功:

整理mongodb文档(一):增

个人公众号 整理mongodb文档(一):增 看前提示 本文主要用到的工具是mongodb的db管理工具-----mongo compass。 本文主要讲的是在上述工具中如何对db的增加的操作,对应转化为mongose里面的语句我想应该不需要我帮忙了吧。。。 选用mongose的理由也很简单&#xf…

iOS开发-使用网络特殊字体下载CGFontRef

iOS开发-使用网络特殊字体下载CoreText 在开发中遇到需要将字体下载后再显示的情况,这种特殊字体下载后才能正常。 一、字体下载器 在AFNetworking中添加 pod Reachability字体下载器使用AFNetworking实现将字体文件下载 代码如下 #import "SDFontDownloa…

一个监控系统的典型架构

监控系统的典型架构图,从左往右看,采集器是负责采集监控数据的,采集到数据之后传输给服务端,通常是直接写入时序库。然后就是对时序库的数据进行分析和可视化,分析部分最典型的就是告警规则判断,即图上的告…

算法leetcode|65. 有效数字(rust重拳出击)

文章目录 65. 有效数字:样例 1:样例 2:样例 3:提示: 分析:题解:rust:go:c:python:java: 65. 有效数字: 有效数字&#xf…

数字转义汉字数字显示的简单研究

最近有个需求,需要显示汉字数字,比如一二三四五…这样子,问题看起来挺简单,但我没有找到有自带这样的转换的方法,数字转汉字数字,挺有意思的,就简单研究了一下; 百度了一下&#xff…