mysql GTID复制跳过复制错误的方式有哪些

技术mysql GTID复制跳过复制错误的方式有哪些这篇文章主要介绍mysql GTID复制跳过复制错误的方式有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、从库执行了事务,主库执行语句时

本文主要介绍mysql GTID复制中跳过复制错误的方法。很详细,有一定的参考价值。感兴趣的朋友一定要读出来!

1.从库执行事务,主库在执行语句时导致冲突:

解决方案1:跳过错误(推荐几个错误)

(1)停止从进程

(2)设置交易号,从Executed_Gtid_Set交易号1获取,即跳过当前执行的下一个交易,在进程中设置GTID_next,即跳过这个Gtid。

(3)执行空的东西。

(4)恢复自动交易号。

(5)启动从进程。

mysql STOP SLAVE

mysql SET @@SESSION。GTID _ NEXT=' 8f 9e 146 f-0a 18-11e 7-810 a-0050568833 c 8:4 ';

mysql BEGINCOMMIT

MySQL SET SESSION GTID _ NEXT=AUTOMATIC;

mysql START SLAVE

解决方案2:复位主方法跳过错误(不推荐,因为需要执行复位主;如果其他节点记录了该实例的位置信息,则在切换时需要再次查找位置)

mysql STOP SLAVE

mysql RESET MASTER

mysql SET @@GLOBAL。GTID _ PURGED=' 8f 9e 146 f-0a 18-11e 7-810 a-0050568833 c 8:1-4 ';

mysql START SLAVE

上述命令的目的是忽略8f9e 146 f-0a 18-11e 7-810 a-0050568833 c 8:1-4的GTID事务,下一个事务将以5的GTID开始,这样可以跳过上述错误。

解决方案3:使用pt-slave-restart工具,忽略具体错误,(有很多冲突时可以使用,建议保留relaylog检查事务),

pt-SLAVE-restart工具用于监视一些特定的复制错误,然后忽略它们并再次启动SLAVE进程(在出现错误后观察并重新启动MySQL复制)。

pt从动重启工具的原理

1.检查版本信息和兼容性。

设置自动提交=1

显示变量,如“等待\u超时”

设置会话等待超时=10000

选择@@SQL_MODE

SET @@SQL_QUOTE_SHOW_CREATE=1/*!40101,@ @ SQL _ MODE=' NO _ AUTO _ VALUE _ ON _ ZERO,NO _ ENGINE _ replacement ' */

选择@@SERVER_ID

显示从属状态

选择CONcat(@ @主机名,@ @端口)

像版本%一样显示变量

显示引擎

显示变量,如' innodb_version '

选择@ @全局。GTID_mode(是否开启GTID决定如何跳过交易)

选择@ @ global . slave _ parallel _ workers作为线程(不支持并行复制)

2.检查同步错误。

显示从属状态;

如果使用- error-numbers,请检查Last_SQL_Errno:错误号以确定它是否匹配;如果匹配继续,不要做任何不匹配的事情。

如果使用- error-text,检查Last_SQL_Error:的错误内容,确定是否匹配;如果匹配继续,不要做任何不匹配的事情。

3.跳过交易

SET GTID _ NEXT=' 026 b75 e 5-d99f-11e 7-a343-000 c29 DC 5 F5 c :2023 ';

设置自动提交=0;

提交;

设置自动提交=1;

设置GTID_NEXT=“自动”;

开始从机;

4.继续判断状态,如有错误,继续步骤2、3、4。

显示从属状态;

mysql显示从属状态\G

*************************** 1.行**************************

从机输入输出状态:等待主机发送事件

                  Master_Host: 192.168.137.101
                  Master_User: repluser
                  Master_Port: 3307
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000003
          Read_Master_Log_Pos: 3435
               Relay_Log_File: mysql-relay-bin.000016
                Relay_Log_Pos: 1026
        Relay_Master_Log_File: mysql-bin.000003
             Slave_IO_Running: Yes
            Slave_SQL_Running: No
  Replicate_Wild_Ignore_Table: passport.cooke,passport.user_token,sysbench_test.sbtest1,sysbench_test.sbtest_1
                   Last_Errno: 1062
                   Last_Error: Error 'Duplicate entry '9' for key 'PRIMARY'' on query. Default database: 'test'. Query: 'insert into backup_test (id,backup_que) values(9,'1_111')'
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 2856
              Relay_Log_Space: 2362
               Last_SQL_Errno: 1062
               Last_SQL_Error: Error 'Duplicate entry '9' for key 'PRIMARY'' on query. Default database: 'test'. Query: 'insert into backup_test (id,backup_que) values(9,'1_111')'
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 1013307
                  Master_UUID: 026b75e5-d99f-11e7-a343-000c29dc5f5c
             Master_Info_File: mysql.slave_master_info
     Last_SQL_Error_Timestamp: 180504 11:58:07
           Retrieved_Gtid_Set: 026b75e5-d99f-11e7-a343-000c29dc5f5c:1004-2018
            Executed_Gtid_Set: 026b75e5-d99f-11e7-a343-000c29dc5f5c:1-2016,
5f5c73b5-2768-11e8-9e7e-000c298bd943:1-2997,
68be50a9-3ba1-11e8-a25d-000c298bd943:1-4
                Auto_Position: 1

[root@vm102 yum.repos.d]# pt-slave-restart  --user=mg -h227.0.0.1 -P3307 -p123qwe  --error-numbers=1062
2018-05-04T11:47:31 P=3307,h=127.0.0.1,p=...,u=mg mysql-relay-bin.000016         448 1062 
2018-05-04T11:47:31 P=3307,h=127.0.0.1,p=...,u=mg mysql-relay-bin.000016         737 1062 

[root@vm102 yum.repos.d]# pt-slave-restart  --user=mg -h227.0.0.1 -P3307 -p123qwe  --error-text="backup_test" 
2018-05-04T12:00:23 P=3307,h=127.0.0.1,p=...,u=mg mysql-relay-bin.000016        1026 1062 
2018-05-04T12:00:24 P=3307,h=127.0.0.1,p=...,u=mg mysql-relay-bin.000016        1315 1062 

参数解释:
 --slave-password=s     Sets the password to be used to connect to the slaves
  --slave-user=s         Sets the user to be used to connect to the slaves
  --sleep=i              Initial sleep seconds between checking the slave ( default 1)
  --socket=s         -S  Socket file to use for connection=
--password=s       -p  Password to use when connecting
pt-slave-resetart  -S./mysql.sock —error-numbers=1032
 --error-numbers=h      Only restart this comma-separated list of errors
 --host=s           -h  Connect to host
 --user=s           -u  User for login if not current user

以上是“mysql GTID复制跳过复制错误的方式有哪些”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/73749.html

(0)

相关推荐

  • vue中自定义一个全局指令(vue什么情况使用自定义指令)

    技术vue中有哪些自定义指令这篇文章主要介绍“vue中有哪些自定义指令”,在日常操作中,相信很多人在vue中有哪些自定义指令问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue中有哪些自定

    攻略 2021年12月16日
  • MySQL 5.5中SHOW PROFILE、SHOW PROFILES语句怎么用

    技术MySQL 5.5中SHOW PROFILE、SHOW PROFILES语句怎么用这篇文章将为大家详细讲解有关MySQL 5.5中SHOW PROFILE、SHOW PROFILES语句怎么用,小编觉得挺实用的,因此

    攻略 2021年10月30日
  • 电子烟和真烟哪个危害大,电子烟和真烟哪个危害大

    技术电子烟和真烟哪个危害大,电子烟和真烟哪个危害大香烟与电子烟本质上不属于同一类型产品电子烟和真烟哪个危害大,香烟,依靠燃烧烟草产生烟雾人吸入肺部通过血液,粘膜吸收,香烟有害身体健康众所周知,香烟里含有焦油,一氧化碳,汞

    生活 2021年10月25日
  • postman中form-data在java中怎么实现(postman怎么传string数组)

    技术postman怎么实现传递ArrayList 给后台小编给大家分享一下postman怎么实现传递ArrayList 给后台,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!postman 传递 Arra

    攻略 2021年12月18日
  • debug D命令如何查看指定范围内的内容

    技术debug D命令如何查看指定范围内的内容今天就跟大家聊聊有关debug D命令如何查看指定范围内的内容,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。    

    攻略 2021年11月11日
  • 辣椒炒鸡蛋的家常做法,青椒炒蛋炒辣椒要放油吗

    技术辣椒炒鸡蛋的家常做法,青椒炒蛋炒辣椒要放油吗肯定需要放油的辣椒炒鸡蛋的家常做法,煎鸡蛋所需的一、准备材料 主料:鸡蛋 200克辅料:辣椒(青、尖) 50克
    调料:植物油60克 料酒25克 盐 3克 各适量
    椒切细,鸡

    生活 2021年10月25日