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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 关于Thread.IsBackground属性的理解

    关于Thread.IsBackground属性的理解C#中,Thread类有一个IsBackground的属性.MSDN上对它的解释是:获取或设置一个值,该值指示某个线程是否为后台线程。个人感觉这样的解释等于没有解释..Net中的线程,可以分为后台线程和前台线程。后台线程与前台线程并没有本质的区别,它们之间唯一的区别就是:后台线程不会防止应用程序的进程被终止掉。呵呵,这句话读出来好像并不那么好懂.其实,说白了就是当前台线程都结束了的时候,…

    2022年10月16日
    4
  • Spring Cloud Eureka集群

    Spring Cloud Eureka集群            SpringCloud基础教程[Eureka集群]NetflixEureka介绍SpirngCloudEureka使用NetflixEureka来实现服务注册与发现。它既包含了服务端组件,也包含了客户端组件,并且服务端与客户端均采用java编写,所以Eureka主要适用于通过java实现的分布式系统,或是JVM兼容语言构建的系统。E…

    2022年5月3日
    53
  • 简易SDRAM控制器的verilog代码实现

    简易SDRAM控制器的verilog代码实现SDRAM是每隔15us进行刷新一次,但是如果当SDRAM需要进行刷新时,而SDRAM正在写数据,这两个操作之间怎么进行协调呢?需要保证写的数据不能丢失,所以,如果刷新的时间到了,先让写操作把正在写的4个数据(突发长度为4)写完,然后再去进行刷新操作;而如果在执行读操作也遇到需要刷新的情况,也可以先让数据读完,再去执行刷新操作。思路:SDRAM控制器包括初始化、读操作、写操作…

    2022年7月25日
    9
  • 微信小程序实例教程_小程序怎么做

    微信小程序实例教程_小程序怎么做微信小程序入门教程+案例demo尊重原创,转载请注明出处:原文查看惊喜更多http://blog.csdn.net/qq137722697首先摆在好姿态,——微信小程序开发也就那么回事。你只需要一点点css(真的只要一点点)的基础就可以了。认清微信小程序开发其实,我觉得小程序就是将微信官方提供20+个基础组件(目前有26个)进行排列组合,然后加上一些css样式,对用户的操作进行反馈(调

    2022年9月17日
    3
  • [系统审计]SAP HANA 中的系统审计策略管理

    [系统审计]SAP HANA 中的系统审计策略管理

    2022年3月7日
    35
  • long类型转化为int_int与long相加结果为

    long类型转化为int_int与long相加结果为一、强制类型转换Longlong=300000;inti=(int)long;二、调用intValue()方法inti=newLong(30000).intValue();三、先把long转换成字符串String,然后在转行成Integerlonglong=300000;inti=Integer.parseInt(String.valueOf(ll));对于采用queryRunner.query(connection,sql,newSc…

    2025年5月28日
    1

发表回复

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

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