MySQL使用空事务解决slave从库errant问题
MySQL集群一般部署为主从架构,主库专门用于写入数据,从库用于读数据。
异常情况下,在从库上写入数据,就会出现主从数据不一致问题,称为errant。
如果从库上的这些数据主库上已经有了,或者主库不需要这些数据,我们就可以使用空事务解决errant问题。
接下来,本文介绍如何使用空事务解决errant问题。
首先查看主库的GTID集合:
>show master status\G
*************************** 1. row ***************************
File: mysql-bin.000001
Position: 7685
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set: b7a7c5c5-c2fa-11e9-8bd0-0022bf5315f2:1-17,
c84e52d2-c2fa-11e9-9b19-002211f26ad8:1,
dea2c515-c2fa-11e9-9eef-0022a6d40ab9:1-6
1 row in set (0.00 sec)
查看从库的GITD集合:
>show master status\G
*************************** 1. row ***************************
File: mysql-bin.000001
Position: 9783
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set: b7a7c5c5-c2fa-11e9-8bd0-0022bf5315f2:1-23,
c84e52d2-c2fa-11e9-9b19-002211f26ad8:1,
dea2c515-c2fa-11e9-9eef-0022a6d40ab9:1-6
1 row in set (0.02 sec)
找到主库从库的差异:
b7a7c5c5-c2fa-11e9-8bd0-0022bf5315f2:18-23
这些GTID是主库上没有的。
在主库上使用空事务进行补齐:
>SET GTID_NEXT='b7a7c5c5-c2fa-11e9-8bd0-0022bf5315f2:18';
Query OK, 0 rows affected (0.00 sec)
>BEGIN;
Query OK, 0 rows affected (0.00 sec)
>COMMIT;
Query OK, 0 rows affected (0.00 sec)
>SET GTID_NEXT='b7a7c5c5-c2fa-11e9-8bd0-0022bf5315f2:19';
Query OK, 0 rows affected (0.00 sec)
>BEGIN;
Query OK, 0 rows affected (0.01 sec)
>COMMIT;
Query OK, 0 rows affected (0.00 sec)
>SET GTID_NEXT='b7a7c5c5-c2fa-11e9-8bd0-0022bf5315f2:20';
Query OK, 0 rows affected (0.00 sec)
>BEGIN;
Query OK, 0 rows affected (0.01 sec)
>COMMIT;
Query OK, 0 rows affected (0.00 sec)
>SET GTID_NEXT='b7a7c5c5-c2fa-11e9-8bd0-0022bf5315f2:21';
Query OK, 0 rows affected (0.00 sec)
>BEGIN;
Query OK, 0 rows affected (0.01 sec)
>COMMIT;
Query OK, 0 rows affected (0.00 sec)
>SET GTID_NEXT='b7a7c5c5-c2fa-11e9-8bd0-0022bf5315f2:22';
Query OK, 0 rows affected (0.00 sec)
>BEGIN;
Query OK, 0 rows affected (0.01 sec)
>COMMIT;
Query OK, 0 rows affected (0.00 sec)
>SET GTID_NEXT='b7a7c5c5-c2fa-11e9-8bd0-0022bf5315f2:23';
Query OK, 0 rows affected (0.00 sec)
>BEGIN;
Query OK, 0 rows affected (0.01 sec)
>COMMIT;
Query OK, 0 rows affected (0.00 sec)
>SET GTID_NEXT='AUTOMATIC';
Query OK, 0 rows affected (0.00 sec)
最后,查看主库上的GTID集合:
>show master status\G
*************************** 1. row ***************************
File: mysql-bin.000001
Position: 9783
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set: b7a7c5c5-c2fa-11e9-8bd0-0022bf5315f2:1-23,
c84e52d2-c2fa-11e9-9b19-002211f26ad8:1,
dea2c515-c2fa-11e9-9eef-0022a6d40ab9:1-6
1 row in set (0.02 sec)
可以看到,事务集合已经补齐。
MySQL使用空事务解决slave从库errant问题的更多相关文章
- MySql不支持事务解决
用的是一个绿色版的mysql数据库,发现不支持事务,在网络上搜集资料找到解决方案: 1.执行语句 SHOW ENGINES; 如果发现InnoDB全部显示为“YES”,说明该版本的数据库支持事务 2 ...
- windows 系统本地做mysql 主从同步,最后面解决主从同步库名不一致,表结构一致
原文:windows 系统本地做mysql 主从同步,最后面解决主从同步库名不一致,表结构一致 mysql主从同步的好处以及原理 之前看到很多新闻说某某的服务器奔溃,磁盘碎了,导致数据丢失 ...
- paip.导入数据英文音标到数据库mysql为空的问题之道解决原理
paip.导入数据英文音标到数据库mysql为空的问题之道解决原理 #---原因:mysql 导入工具的bug #---解决:使用双引号不个音标括起来. 作者 老哇的爪子 Attilax 艾龙, E ...
- MySQL 空事务
问题描述; 研发同事反应MySQL数据库有锁,检查innodb_trx时,发现有很多长时间未结束的空事务. 这些事务的trx_mysql_thread_id都为0,因此不能通过kill ...
- MySQL 采用Xtrabackup对数据库进行全库备份
1,xtrabackup简介 关于数据库备份以及备份工具,参考:http://blog.itpub.net/26230597/viewspace-1460065/,这里来介绍xtrabackup已经如 ...
- MySQL数据库分布式事务XA优缺点与改进方案
1 MySQL 外部XA分析 1.1 作用分析 MySQL数据库外部XA可以用在分布式数据库代理层,实现对MySQL数据库的分布式事务支持,例如开源的代理工具:ameoba[4],网易的DDB,淘宝的 ...
- MySQL笔记(7)---事务
1.前言 前面具体讲了MySQL中的锁实现的方式,解释了是如何保证数据在并发情况下的可靠性,并提到了事务REPETABLE READ和READ COMMITTED,解释了一下这两种事务的不同.本章讲具 ...
- Mysql 的InnoDB事务方面的 多版本并发控制如何实现 MVCC
Mysql的MVCC不能解决幻读的问题,但是Mysql还有间隙锁功能,Mysql的间隙锁工作在Repeatable Read隔离级别下面,可以防止幻读, 参考:Mysql 间隙锁原理,以及Repeat ...
- 【转】全面了解Mysql中的事务
为什么要有事务? 事务广泛的运用于订单系统.银行系统等多种场景.如果有以下一个场景:A用户和B用户是银行的储户.现在A要给B转账500元.那么需要做以下几件事: 1. 检查A的账户余额>500元 ...
随机推荐
- STM32启动BOOT0 BOOT1设置方法
原理图 启动方式 第一种启动方式是最常用的用户FLASH启动.默认启动方式 第二种启动方式是STM32内嵌的SRAM启动.该模式用于调试 第三种启动方式是系统存储器启动方式,不建议使用这种,速度比较慢 ...
- vue项目前端限制页面长时间未操作超时退出到登录页
之前项目超时判断是后台根据token判断的,这样判断需要请求接口才能得到返回结果,这样就出现页面没有接口请求时还可以点击,有接口请求时才会退出 现在需要做到的效果是:页面超过30分钟未操作时,无论点击 ...
- 如何提高后台服务应用问题的排查效率?日志 VS 远程调试
转眼间,距离Jerry最近一篇文章推送已经过去了一个多月的时间了. 公众号更新的频率降低,不是因为Jerry偷懒,而是由于从春节过后,我所在的SAP成都研究院数字创新空间整个团队,一直在忙一个5月份需 ...
- Browser Security-超文本标记语言(HTML)
Browser Security-超文本标记语言(HTML) 瞌睡龙 · 2013/06/19 18:55 重要的4个规则: 1 &符号不应该出现在HTML的大部分节点中. 2 尖括号< ...
- 第一篇.markdown
目录 Day 01 1.markdown的使用感受 2.markdown的基本语法 2.1 标题 2.2 加粗 2.3 斜体 2.4 高亮 2.5 上标 2.6 下标 2.7 代码引用(>式) ...
- 【Day4】2.详解Http请求协议
Http请求协议
- (3)你的第一个python程序
Life is short,you need python!人生苦短,你需要python!好吧,干了这碗鸡汤................. hello world 没错,几乎是所有程序猿的第一个程 ...
- 使用Barrier分三步将大象放入冰箱
class Program { //构造大象和冰箱 private static ElephantsAndFridges elephantsAndFridges = new ElephantsAndF ...
- 说一下 HashSet 的实现原理?(未完成)
说一下 HashSet 的实现原理?(未完成)
- 单例模式(Singleton)的同步锁synchronized
单例模式,有“懒汉式”和“饿汉式”两种. 懒汉式 单例类的实例在第一次被引用时候才被初始化. public class Singleton { private static Singleton ins ...