首页 > 其他分享 >gtid复制中跳过错误事务的另一种方法

gtid复制中跳过错误事务的另一种方法

时间:2022-12-13 22:33:36浏览次数:42  
标签:事务 set replica1 复制 sec mode query gtid

gtid复制中跳过错误事务的另一种方法

replica1 > select @@gtid_mode;
+---------------------+
| @@gtid_mode         |
+---------------------+
|  on                 |
+---------------------+
replica1 > stop slave;
query ok, 0 rows affected (0.02 sec)
 
replica1 > set gtid_mode=on_permissive;
query ok, 0 rows affected (0.04 sec)
 
replica1 > set global sql_slave_skip_counter = 1;
query ok, 0 rows affected (0.00 sec)
 
replica1 > start slave;
query ok, 0 rows affected (0.00 sec)
 
replica1 > pager grep seconds
pager set to 'grep seconds'
replica1 > show slave status\g
        seconds_behind_master: 0
1 row in set (0.00 sec)

关闭主从复制,并将gtid_mode设置成on_permissive(新的事务是gtid事务,复制事务可以是匿名事务、也可以是gtid事务)。使用sql_slave_skip_counter=1跳过事务,然后重启复制。

一旦复制同步后,我们就需要将gtid_mode改会on。

replica1 > select @@gtid_mode;
+---------------------- ----+
| @@gtid_mode               |
+---------------------------+
| on_permissive             |
+---------------------------+
 
replica1 > set global gtid_mode=on;
query ok, 0 rows affected (0.04 sec)


要想将gtid_mode从on设置成on_permissive,必须将sql_slave_skip_counter设置成0。

replica1 > stop slave;
query ok, 0 rows affected (0.02 sec)
 
replica1 > set gtid_mode=on_permissive;
query ok, 0 rows affected (0.04 sec)
 
replica1 > set global sql_slave_skip_counter = 1;
query ok, 0 rows affected (0.00 sec)
 
replica1 > set global gtid_mode=on;
error 3111 (hy000): set @@global.gtid_mode = on is not allowed because @@global.sql_slave_skip_counter is greater than zero.
 
replica1 > start slave;
query ok, 0 rows affected (0.00 sec)
 
replica1 > set global gtid_mode=on;
query ok, 0 rows affected (0.02 sec)

这样跳过后,主从可能会不一致,这就需要使用pt-table-checksum、pt-table-sync来修复一致性了。

标签:事务,set,replica1,复制,sec,mode,query,gtid
From: https://www.cnblogs.com/abclife/p/16979466.html

相关文章

  • 数组复制
    importjava.util.Scanner;publicclassEext{publicstaticvoidmain(String[]args){int[]oldArr={7,77,777};A03a03=newA03();......
  • SpringDataRedis事务 专题
    5.10.1.@TransactionalSupportTransactionSupportisdisabledbydefaultandhastobeexplicitlyenabledforeachRedisTemplateinusebysettingsetEnableTran......
  • Mysql - 多源复制
    一、说明我们使用mysql大多数都是一主一从或者是一主多从的架构,但在有些情况下我们希望能将多个主库同步到一个从库下面,本文将介绍多主一从的安装方法以及注意事项。实验......
  • 深入理解 Spring 事务:入门、使用、原理
    大家好,我是树哥。Spring事务是复杂一致性业务必备的知识点,掌握好Spring事务可以让我们写出更好地代码。这篇文章我们将介绍Spring事务的诞生背景,从而让我们可以更清晰......
  • 5、Excel—在做车辆费用汇总的时候,复制出来的数据跟同事的一样,但是合计总数就不一样
    在做车辆费用汇总的时候,复制出来的数据跟同事的一样,但是合计总数就不一样,刚开始以为是数值问题,明明两份Excel都是同样的数据,为什么合计就不一样呢?(根据同事那份的数据,然后......
  • Clipboard 复制粘贴的使用
    首先npminstallclipboard安装依赖;clipboard.js1importVuefrom'vue'2importClipboardfrom'clipboard'34functionclipboardSuccess(){5Vu......
  • MySQL的事务
    MySQL事务MySQL事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,......
  • KingbaseES V8R6在解决复制冲突中hot_standby_feedback参数的重要性
    背景如果我们看到这样的类似报错:那说明可能遇到了复制冲突。复制冲突的理解:当备库正在应用主库传输过来的wal日志与备库正在进行的查询产生冲突就会有此报错。比如说备库......
  • 《MySQL必知必会》之事务、用户权限、数据库维护和性能
    第二十六章管理事务处理本章介绍什么是事务处理以及如何利用COMMIT和ROLLBACK语句来管理事务处理事务处理并非所有数据库引擎都支持事务处理常用的InnoDB支持事务处......
  • 事务的4中隔离级别
    数据库事务的隔离级别有4种,由低到高分别为Readuncommitted、Readcommitted、Repeatableread、Serializable。而且,在事务的并发操作中可能会出现脏读,不可重复读,幻读......