mysql复制使用gtid,用gtid_purged跳过事务

mysql复制使用gtid,用gtid_purged跳过事务

show slave status查看slave状态时,SQL线程停止运行,错误显示Update错误,如果没有使用gtid,可以使用sql_slave_skip_counter跳过,但是开启gtid后,使用该方式是无效的。

    
  1. root@[(none)] 05:36:24> show slave status\G;
  2. *************************** 1. row ***************************
  3.                Slave_IO_State: Waiting for master to send event
  4.                   Master_Host: 10.1.8.24
  5.                   Master_User: repl
  6.                   Master_Port: 3306
  7.                 Connect_Retry: 60
  8.               Master_Log_File: mysql-bin.000009
  9.           Read_Master_Log_Pos: 49413140
  10.                Relay_Log_File: mysqld-relay-bin.000011
  11.                 Relay_Log_Pos: 2043387
  12.         Relay_Master_Log_File: mysql-bin.000002
  13.              Slave_IO_Running: Yes
  14.             Slave_SQL_Running: No
  15.               Replicate_Do_DB: 
  16.           Replicate_Ignore_DB: 
  17.            Replicate_Do_Table: 
  18.        Replicate_Ignore_Table: 
  19.       Replicate_Wild_Do_Table: zabbix.%
  20.   Replicate_Wild_Ignore_Table: 
  21.                    Last_Errno: 1032
  22.                    Last_Error: Could not execute Update_rows event on table zabbix.user_history; Can't find record in 'user_history', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log mysql-bin.000002, end_log_pos 28739818
  23.                  Skip_Counter: 0
  24.           Exec_Master_Log_Pos: 28739081
  25.               Relay_Log_Space: 783475657
  26.               Until_Condition: None
  27.                Until_Log_File: 
  28.                 Until_Log_Pos: 0
  29.            Master_SSL_Allowed: No
  30.            Master_SSL_CA_File: 
  31.            Master_SSL_CA_Path: 
  32.               Master_SSL_Cert: 
  33.             Master_SSL_Cipher: 
  34.                Master_SSL_Key: 
  35.         Seconds_Behind_Master: NULL
  36. Master_SSL_Verify_Server_Cert: No
  37.                 Last_IO_Errno: 0
  38.                 Last_IO_Error: 
  39.                Last_SQL_Errno: 1032
  40.                Last_SQL_Error: Could not execute Update_rows event on table zabbix.user_history; Can't find record in 'user_history', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log mysql-bin.000002, end_log_pos 28739818
  41.   Replicate_Ignore_Server_Ids: 
  42.              Master_Server_Id: 1
  43.                   Master_UUID: 7bdd3156-ff10-11e3-91dc-001018a0b030
  44.              Master_Info_File: /var/lib/mysql/master.info
  45.                     SQL_Delay: 0
  46.           SQL_Remaining_Delay: NULL
  47.       Slave_SQL_Running_State: 
  48.            Master_Retry_Count: 86400
  49.                   Master_Bind: 
  50.       Last_IO_Error_Timestamp: 
  51.      Last_SQL_Error_Timestamp: 140928 05:33:17
  52.                Master_SSL_Crl: 
  53.            Master_SSL_Crlpath: 
  54.            Retrieved_Gtid_Set: 7bdd3156-ff10-11e3-91dc-001018a0b030:1-732546
  55.             Executed_Gtid_Set: 7bdd3156-ff10-11e3-91dc-001018a0b030:1-107805 #当前slave执行到的位置
  56.                 Auto_Position: 1
  57. 1 row in set (0.00 sec)
  58. ERROR: 
  59. No query specified


解决办法:

使用
gtid_purged跳过事务,从上面slave状态信息可知,slave当前执行到了
7bdd3156-ff10-11e3-91dc-001018a0b030:1-107805,使用gtid_purged跳过下一个事务
7bdd3156-ff10-11e3-91dc-001018a0b030:1-107806

    
  1. root@[(none)] 05:36:29> stop slave;
  2. Query OK, 0 rows affected (0.05 sec)
  3. root@[(none)] 05:36:35> reset master;
  4. Query OK, 0 rows affected (0.14 sec)
  5. root@[(none)] 05:36:38> set global gtid_purged='7bdd3156-ff10-11e3-91dc-001018a0b030:1-107806'; #跳过事务
  6. Query OK, 0 rows affected (0.13 sec)


查看状态已经恢复正常:
    
  1. root@[(none)] 05:36:57> start slave;show slave status\G;
  2. Query OK, 0 rows affected (0.04 sec)
  3. *************************** 1. row ***************************
  4.                Slave_IO_State: Checking master version
  5.                   Master_Host: 10.1.8.24
  6.                   Master_User: repl
  7.                   Master_Port: 3306
  8.                 Connect_Retry: 60
  9.               Master_Log_File: mysql-bin.000009
  10.           Read_Master_Log_Pos: 49436416
  11.                Relay_Log_File: mysqld-relay-bin.000011
  12.                 Relay_Log_Pos: 2043387
  13.         Relay_Master_Log_File: mysql-bin.000002
  14.              Slave_IO_Running: Yes
  15.             Slave_SQL_Running: Yes
  16.               Replicate_Do_DB: 
  17.           Replicate_Ignore_DB: 
  18.            Replicate_Do_Table: 
  19.        Replicate_Ignore_Table: 
  20.       Replicate_Wild_Do_Table: zabbix.%
  21.   Replicate_Wild_Ignore_Table: 
  22.                    Last_Errno: 0
  23.                    Last_Error: 
  24.                  Skip_Counter: 0
  25.           Exec_Master_Log_Pos: 28739081
  26.               Relay_Log_Space: 783498933
  27.               Until_Condition: None
  28.                Until_Log_File: 
  29.                 Until_Log_Pos: 0
  30.            Master_SSL_Allowed: No
  31.            Master_SSL_CA_File: 
  32.            Master_SSL_CA_Path: 
  33.               Master_SSL_Cert: 
  34.             Master_SSL_Cipher: 
  35.                Master_SSL_Key: 
  36.         Seconds_Behind_Master: 256354
  37. Master_SSL_Verify_Server_Cert: No
  38.                 Last_IO_Errno: 0
  39.                 Last_IO_Error: 
  40.                Last_SQL_Errno: 0
  41.                Last_SQL_Error: 
  42.   Replicate_Ignore_Server_Ids: 
  43.              Master_Server_Id: 1
  44.                   Master_UUID: 7bdd3156-ff10-11e3-91dc-001018a0b030
  45.              Master_Info_File: /var/lib/mysql/master.info
  46.                     SQL_Delay: 0
  47.           SQL_Remaining_Delay: NULL
  48.       Slave_SQL_Running_State: Waiting for the next event in relay log
  49.            Master_Retry_Count: 86400
  50.                   Master_Bind: 
  51.       Last_IO_Error_Timestamp: 
  52.      Last_SQL_Error_Timestamp: 
  53.                Master_SSL_Crl: 
  54.            Master_SSL_Crlpath: 
  55.            Retrieved_Gtid_Set: 7bdd3156-ff10-11e3-91dc-001018a0b030:1-732563
  56.             Executed_Gtid_Set: 7bdd3156-ff10-11e3-91dc-001018a0b030:1-107806
  57.                 Auto_Position: 1
  58. 1 row in set (0.00 sec)
  59. ERROR: 
  60. No query specified


转载于:https://my.oschina.net/anthonyyau/blog/322760

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109717.html原文链接:https://javaforall.net

(0)
上一篇 2021年9月1日 上午6:00
下一篇 2021年9月1日 上午7:00


相关推荐

  • CTF-UPX脱壳加壳讲解;(详细版)

    CTF-UPX脱壳加壳讲解;(详细版)在做CTF-RE题的时候,下载的题目附件会发现缺少函数方法的现象,说明这个文件就被加壳处理了;这个是加壳状态下的;脱壳后~~~~~~~如何发现是加壳的呢?除了开头所描述的方法,还有第二种用ExeinfoPE软件查看附件信息;此时这个软件就提示我们这个附件是UPX加壳处理的;二.脱壳这里我只讲一种方法(因为我只会一种方法-.-)首先下载好打包好的UPX脱壳工具,解压下载好:讲一下用法吧在这个文件夹当中输入cmd进入;输入upx.exe-h有如下反应:

    2022年7月19日
    71
  • 进程之间的通信方式「建议收藏」

    进程之间的通信方式「建议收藏」进程间通信方式一般有以下几种:1、管道,匿名管道,命名管道2、信号3、信号量4、消息队列5、共享内存6、socket管道管道数据只能单向流动,所以如果要实现双向通信,就要创建2个管道管道分为匿名管道和命名管道匿名管道只能在父子进程关系之间使用命名管道,可以在不关联的两个进程之间使用,因为它创建了一个类型为管道的设备文件,使用这个设备文件就可以通信。管道只能承载无格式的字节流信号信号是进程之间唯一的异步通信机制,信号的主要来源主要有硬件来源(入键盘操作ctrl+C)

    2022年10月11日
    9
  • 免费DDOS攻击测试工具大合集

    免费DDOS攻击测试工具大合集免费 DDOS 攻击测试工具大合集 DoS DenialOfServ 攻击是指故意的攻击网络协议实现的缺陷或直接通过野蛮手段残忍地耗尽被攻击对象的资源 目的是让目标计算机或网络无法提供正常的服务或资源访问 使目标系统服务系统停止响应甚至崩溃 然而随着网络上免费的可用 DDOS 工具增多 Dos 攻击也日益增长 下面介绍几款 Hacker 常用的 Dos 攻击工具 特别提示 仅用于攻防

    2026年3月26日
    1
  • crontab每分钟执行一次任务

    crontab每分钟执行一次任务在 home 下面写了一个 test sh bin shechohello gt home hello txt 然后在 crontab e 中设置了 1 home a sh 为何等了好几分钟 home 下面还是没有 hello txt 呢 指定一下用什么运行 1sh home test sh

    2026年3月26日
    2
  • MySql注释符号

    MySql注释符号MySql 三种注释写法需要特别注意 这种注释后面要加一个空格 DELETEFROMSe DELETEFROMSe DELETEFROMSe 转自 https blog csdn net chinafire525 article details

    2026年3月18日
    3
  • 《JavaScript 模式》读书笔记(7)— 设计模式2

    这一篇我们主要来学习装饰者模式、策略模式以及外观模式。其中装饰者模式稍微复杂一点,大家认真阅读,要自己动手去实现一下哦。四、装饰者模式在装饰者模式中,可以在运行时动态添加附加功能到对象中。当处理静

    2022年3月25日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号