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_Error,Last_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 slave和start slave重启下同步。Slave_SQL线程会重新的尝试工作。
如果没有问题,那么Slave_SQL的状态会变回Yes。但此时主从并没有完全同步,需要一点时间。
判断主从完全同步
若完全同步,可通过以下几条判断:
1. 首先 Master_Log_File 和 Relay_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 | |
相关文章:
mysql 主从同步排查和处理 Slave_IO、Slave_SQL
目录 查看主从是否同步 详解Slave_IO、Slave_SQL 判断主从完全同步 各个 Log_File 和 Log_Pos的关系 修复命令 查看主从是否同步 show slave status; Slave_IO_Running、Slave_SQL_Running,这两个值是Yes表示正常,No是异常 使用竖排显示…...

基于解析法和遗传算法相结合的配电网多台分布式电源降损配置(Matlab实现)
目录 1 概述 2 数学模型 2.1 问题表述 2.2 DG的最佳位置和容量(解析法) 2.3 使用 GA 进行最佳功率因数确定和 DG 分配 3 仿真结果与讨论 3.1 33 节点测试配电系统的仿真 3.2 69 节点测试配电系统仿真 4 结论 1 概述 为了使系统网损达到最低值&a…...
07mysql查询语句之子查询
#1.查询和Zlotkey相同部门的员工姓名和工资 SELECT last_name,salary FROM employees WHERE department_id IN ( SELECT department_id FROM employees WHERE last_name Zlotkey ); #2.查询工资比公司平均工资高的员工的员工号࿰…...
笙默考试管理系统-MyExamTest(22)
笙默考试管理系统-MyExamTest(22) 目录 一、 笙默考试管理系统-MyExamTest 二、 笙默考试管理系统-MyExamTest 三、 笙默考试管理系统-MyExamTest 四、 笙默考试管理系统-MyExamTest 五、 笙默考试管理系统-MyExamTest 笙默考试管理系统-MyExa…...

Windows 不同方式打开的cmd/dos窗口属性配置不同
文章目录 1. 默认值(控制台窗口)属性2. "C:\Windows\System32\cmd.exe" 属性3. "命令提示符"属性4. 自定义某标题cmd窗口属性5. cmd快捷方式的属性总结 最近在写某个批处理脚本时,意外发现 Windows系统中,在不…...
性能优化-webpack配置gzip
3步搞定,实测1.3Mjs压缩到363k,体积减少70% 1.装包 yarn add compression-webpack-plugin --dev 2.配置webpack 打开config/webpack.config.js 1)在 module.exports 导出函数前面引入插件 // gzip插件 const CompressionPlugin require(&qu…...

RabbitMQ 教程 | 第3章 客户端开发向导
👨🏻💻 热爱摄影的程序员 👨🏻🎨 喜欢编码的设计师 🧕🏻 擅长设计的剪辑师 🧑🏻🏫 一位高冷无情的编码爱好者 大家好,我是 DevO…...

基于深度学习的CCPD车牌检测系统(PyTorch+Pyside6+YOLOv5模型)
摘要:基于CCPD数据集的高精度车牌检测系统可用于日常生活中检测与定位车牌目标,利用深度学习算法可实现图片、视频、摄像头等方式的车牌目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型训练数据集…...
input元素中的form属性有什么用?
在HTML中,input元素的form属性用于指定该输入字段所属的表单(form元素)。通过将input元素的form属性设置为相应的表单的id值,可以将输入字段与表单进行关联。 这个属性对于两个主要目的非常有用: 表单关联࿱…...

【数据结构篇C++实现】- 特殊的线性表 - 串
友情链接:C/C系列系统学习目录 文章目录 串🚀一、串的定义🚀二、串的存储结构🛴(一)串的顺序存储结构1、定长顺序存储表示2、堆分配存储表示 🛴(二)串的链式存储结构3、块…...
DevOps系列文章 之 Springboot单元测试
在没有代码生成工具或尝试一门新的 ORM框架时,当我们希望不去另外写 Service 和 Controller 来验证 DAO 层的代码不希望只通过接口请求的方式来验证时,这时候单元测试的方式就可以帮助我们满足这一需求。 在我们开发Web应用时,经常会直接去观…...

04 linux之C 语言高级编程
gcc和gdb GNU工具 编译工具:把一个源程序编译为一个可执行程序调试工具:能对执行程序进行源码或汇编级调试软件工程工具:用于协助多人开发或大型软件项目的管理,如make、CVS、Subvision其他工具:用于把多个目标文件链…...

深入学习 Redis - Stream、Geospatial、HyperLogLog、Bitmap、Bitfields 类型扩展
目录 前言 Stream geospatial HyperLogLog Bitmaps Bitfields 前言 redis 中最关键的五个数据类型 String、List、Hash、Set、Zset 应用最广泛,同时 redis 也推出了额外的 5 个数据类型,他们分别是针对特殊场景才进行的应用的. Ps:这几种…...

Windows11+Opencv+Clion编译源码
Windows11OpencvClion编译源码 参考:https://www.robotsfan.com/posts/69395e08.html 注意事项 编译过程中使用的软件,开源码等所有工具的安装路径一定不要有中文和空格。cmake过程会下载一些文件,如果是局域网的话可能下载不下来…...

【机器学习】Cost Function
Cost Function 1、计算 cost2、cost 函数的直观理解3、cost 可视化总结附录 首先,导入所需的库: import numpy as np %matplotlib widget import matplotlib.pyplot as plt from lab_utils_uni import plt_intuition, plt_stationary, plt_update_onclic…...

【黑马头条之内容安全第三方接口】
本笔记内容为黑马头条项目的文本-图片内容审核接口部分 目录 一、概述 二、准备工作 三、文本内容审核接口 四、图片审核接口 五、项目集成 一、概述 内容安全是识别服务,支持对图片、视频、文本、语音等对象进行多样化场景检测,有效降低内容违规风…...

回归预测 | MATLAB实现GRNN广义回归神经网络多输入单输出回归预测(多指标,多图)
回归预测 | MATLAB实现GRNN广义回归神经网络多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现GRNN广义回归神经网络多输入单输出回归预测(多指标,多图)效果一览基本介绍程序设计参考资料效果一览 基本介绍 MATLAB实现GRNN广义回归神经网络多输入单输出回归…...
STM32 HAL库函数——HAL_UART_RxCpltCallback()详解
HAL_UART_RxCpltCallback函数 他是谁,他和谁有关功能用法每收到一个字符,就自动调用一次??示例----接收未知长度的字符 他是谁,他和谁有关 HAL_UART_RxCpltCallback 是一个回调函数,用于在使用 HAL 库进行…...

前端调用合约如何避免出现transaction fail
前言: 作为开发,你一定经历过调用合约的时候发现 gas fee 超出限制,但是不知道报了什么错。这个时候一般都是触发了require错误合约校验。对于用户来说他不理解为什么一笔交易会花费如此大的gas,那我们作为开发如何尽量避免这种情…...
选择器的使用
目录 层级选择器属性选择器伪类选择器结构伪类选择器目标伪类选择器 层级选择器 /*子代选择器:选出box下的所有li标签*/.box>li{background-color: aliceblue;}/* 选出box后面的第一个兄弟li标签 */.boxli{background-color: aliceblue;}/* 选出box后面的所有兄…...

软考A计划-系统集成项目管理工程师-项目干系人管理-上
点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 👉关于作者 专注于Android/Unity和各种游…...

F5 LTM 知识点和实验 2-负载均衡基础概念
第二章:负载均衡基础概念 目标: 使用网页和TMSH配置virtual servers,pools,monitors,profiles和persistence等。查看统计信息 基础概念: Node一个IP地址。是创建pool池的基础。可以手工创建也可以自动创…...

安全学习DAY08_算法加密
算法加密 漏洞分析、漏洞勘测、漏洞探针、挖漏洞时要用到的技术知识 存储密码加密-应用对象传输加密编码-发送回显数据传输格式-统一格式代码特性混淆-开发语言 传输数据 – 加密型&编码型 安全测试时,通常会进行数据的修改增加提交测试 数据在传输的时候进行…...

OpenCloudOS 与PolarDB全面适配
近日,OpenCloudOS 开源社区签署阿里巴巴开源 CLA (Contribution License Agreement, 贡献许可协议), 正式与阿里云 PolarDB 开源数据库社区牵手,并展开 OpenCloudOS (V8)与阿里云开源云原生数据库 PolarDB 分布式版、开源云原生数…...
如何在Linux系统中使用yum命令安装MySQL
1、安装软件 # yum install -y https://repo.mysql.com//mysql80-community-release-el7-8.noarch.rpm # yum -y install mysql-community-server网址来源:https://dev.mysql.com/downloads/repo/yum/ 2、启动软件 # systemctl enable mysqld# systemctl start my…...

在Ail Linux中手动配置IPv6
第一步,登录阿里云服务器控制台,在“概览”页面找到对应实例,然后单击实例ID。 第二步,在“实例详情”页面中的“网络信息”栏目中,可以发现“IPv6 地址”中没有数据,然后单击“专有网络”的专有网络ID。 第…...

TCP如何保证服务的可靠性
TCP如何保证服务的可靠性 确认应答超时重传流量控制滑动窗口机制概述发送窗口和接收窗口的工作原理几种滑动窗口协议1比特滑动窗口协议(停等协议)后退n协议选择重传协议 采用滑动窗口的问题(死锁可能,糊涂窗口综合征)死…...

【云原生系列】openstack搭建过程及使用
目录 搭建步骤 准备工作 正式部署OpenStack 安装的过程 安装组件如下 登录页面 进入首页 创建实例步骤 上传镜像 配置网络 服务器配置 dashboard配置 密钥配置免密登录 创建实例 绑定浮动ip 免密登录实例 搭建步骤 准备工作 1.关闭防火墙和网关 systemctl dis…...

无涯教程-jQuery - Menu组件函数
小部件菜单功能可与JqueryUI中的小部件一起使用。一个简单的菜单显示项目列表。 Menu - 语法 $( "#menu" ).menu(); Menu - 示例 以下是显示菜单用法的简单示例- <!doctype html> <html lang"en"><head><meta charset"utf-…...
Django用户登录验证和自定义验证类
一、FBV 用户登录验证 1.1 登录验证并加入 session 用户登录时,使用 authenticate 验证用户名和密码是否正确,正确则返回一个用户对象。 用户名默认的字段名是 username 密码默认的字段名是 password 将已验证的用户添加到当前会话(session)中&#x…...