gtid 1032错误案例

大致背景:

  分别在主从上删除了系统冗余账号。

mysql> delete from mysql.user where host='::1';
Query OK, 1 row affected (0.01 sec)

mysql> select user,host from mysql.user where host="::1";
Empty set (0.00 sec)

mysql> delete from mysql.user where host='dba\_test\_001';
Query OK, 1 row affected (0.00 sec)

mysql> select user,host from mysql.user where host="::1";

然后就顺利的模拟出了下面的故障。

[root@dba_test_002 ~]# cat error.txt
mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 10.10.50.60
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000021
          Read_Master_Log_Pos: 1761
               Relay_Log_File: relay-bin.000051
                Relay_Log_Pos: 401
        Relay_Master_Log_File: mysql-bin.000021
             Slave_IO_Running: Yes
            Slave_SQL_Running: No
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 1032
                   Last_Error: Could not execute Delete_rows event on table mysql.user; Can't find record in 'user', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log mysql-bin.000021, end_log_pos 707
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 191
              Relay_Log_Space: 90227450
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 1032
               Last_SQL_Error: Could not execute Delete_rows event on table mysql.user; Can't find record in 'user', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log mysql-bin.000021, end_log_pos 707
  Replicate_Ignore_Server_Ids:
             Master_Server_Id: 1574144089
                  Master_UUID: 0501f340-0a94-11ea-ad2b-5254007dcbb3
             Master_Info_File: mysql.slave_master_info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State:
           Master_Retry_Count: 86400
                  Master_Bind:
      Last_IO_Error_Timestamp:
     Last_SQL_Error_Timestamp: 191204 16:11:25
               Master_SSL_Crl:
           Master_SSL_Crlpath:
           Retrieved_Gtid_Set: 0501f340-0a94-11ea-ad2b-5254007dcbb3:10-5440870
            Executed_Gtid_Set: 0501f340-0a94-11ea-ad2b-5254007dcbb3:1-5440867,
137347eb-0a94-11ea-ad2b-525400dd43f8:1-531071
                Auto_Position: 0
1 row in set (0.00 sec)

ERROR:
No query specified

mysql>

# 检查主库的日志
 /data/mysql/percona_server/bin/mysqlbinlog -vvv --base64-output-decode=rows  --stop-position=707 mysql-bin.000021 >21.binlog
/data/mysql/percona_server/bin/mysqlbinlog: unknown variable 'default-character-set=utf8mb4'

两个方法可以解决这个问题

一是在MySQL的配置/etc/my.cnf中将default-character-set=utf8 修改为 character-set-server = utf8,但是这需要重启MySQL服务,如果你的MySQL服务正在忙,

那这样的代价会比较大。

二是用mysqlbinlog --no-defaults mysql-bin.000004 命令打开

/data/mysql/percona_server/bin/mysqlbinlog --no-defaults -vvv --base64-output=decode-rows  --stop-position=707 mysql-bin.000021 >21.binlog 
 
# 在解析出来的日志中
SET @@SESSION.GTID_NEXT= '0501f340-0a94-11ea-ad2b-5254007dcbb3:5440868'/*!*/;
# at 239
#191204 15:54:44 server id 1574144089  end_log_pos 307 CRC32 0x9a232d9b         Query   thread_id=1     exec_time=0     error_code=0
SET TIMESTAMP=1575446084/*!*/;
SET @@session.pseudo_thread_id=1/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1073741824/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8mb4 *//*!*/;
SET @@session.character_set_client=224,@@session.collation_connection=224,@@session.collation_server=224/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
BEGIN
/*!*/;
# at 307
#191204 15:54:44 server id 1574144089  end_log_pos 476 CRC32 0x226b252a         Table_map: `mysql`.`user` mapped to number 1
# at 476
#191204 15:54:44 server id 1574144089  end_log_pos 707 CRC32 0x5f556bfd         Delete_rows: table id 1 flags: STMT_END_F

SET GTID_NEXT='0501f340-0a94-11ea-ad2b-5254007dcbb3:5440868';

-- 这里的''中的值,不好确定,所以从主库日志中查看,经过验证,是正常的。笔者第一次,还错误的写成了'0501f340-0a94-11ea-ad2b-5254007dcbb3:5440870'

BEGIN;COMMIT;
SET GTID_NEXT='AUTOMATIC';
START SLAVE;
show slave status\G;

# 再次出现异常
mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 10.10.50.60
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000021
          Read_Master_Log_Pos: 1761
               Relay_Log_File: relay-bin.000051
                Relay_Log_Pos: 986
        Relay_Master_Log_File: mysql-bin.000021
             Slave_IO_Running: Yes
            Slave_SQL_Running: No
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 1032
                   Last_Error: Could not execute Delete_rows event on table mysql.user; Can't find record in 'user', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log mysql-bin.000021, end_log_pos 1194
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 776
              Relay_Log_Space: 90227450
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 1032
               Last_SQL_Error: Could not execute Delete_rows event on table mysql.user; Can't find record in 'user', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log mysql-bin.000021, end_log_pos 1194
  Replicate_Ignore_Server_Ids:
             Master_Server_Id: 1574144089
                  Master_UUID: 0501f340-0a94-11ea-ad2b-5254007dcbb3
             Master_Info_File: mysql.slave_master_info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State:
           Master_Retry_Count: 86400
                  Master_Bind:
      Last_IO_Error_Timestamp:
     Last_SQL_Error_Timestamp: 191204 16:40:29
               Master_SSL_Crl:
           Master_SSL_Crlpath:
           Retrieved_Gtid_Set: 0501f340-0a94-11ea-ad2b-5254007dcbb3:10-5440870
            Executed_Gtid_Set: 0501f340-0a94-11ea-ad2b-5254007dcbb3:1-5440868:5440870,
137347eb-0a94-11ea-ad2b-525400dd43f8:1-531071
                Auto_Position: 0
1 row in set (0.00 sec)

ERROR:
No query specified

#在日志中找到所需信息
SET @@SESSION.GTID_NEXT= '0501f340-0a94-11ea-ad2b-5254007dcbb3:5440869'/*!*/;
# at 824
#191204 15:55:17 server id 1574144089  end_log_pos 892 CRC32 0x8a128fdd         Query   thread_id=1     exec_time=0     error_code=0
SET TIMESTAMP=1575446117/*!*/;
BEGIN
/*!*/;
# at 892
#191204 15:55:17 server id 1574144089  end_log_pos 1061 CRC32 0x3fe67eeb        Table_map: `mysql`.`user` mapped to number 1
# at 1061
#191204 15:55:17 server id 1574144089  end_log_pos 1194 CRC32 0x1fbd26d1        Delete_rows: table id 1 flags: STMT_END_F

SET GTID_NEXT='0501f340-0a94-11ea-ad2b-5254007dcbb3:5440869';
BEGIN;COMMIT;
SET GTID_NEXT='AUTOMATIC';
START SLAVE;
show slave status\G;

mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 10.10.50.60
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000021
          Read_Master_Log_Pos: 1761
               Relay_Log_File: relay-bin.000051
                Relay_Log_Pos: 1971
        Relay_Master_Log_File: mysql-bin.000021
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 1761
              Relay_Log_Space: 90227450
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
             Master_Server_Id: 1574144089
                  Master_UUID: 0501f340-0a94-11ea-ad2b-5254007dcbb3
             Master_Info_File: mysql.slave_master_info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
           Master_Retry_Count: 86400
                  Master_Bind:
      Last_IO_Error_Timestamp:
     Last_SQL_Error_Timestamp:
               Master_SSL_Crl:
           Master_SSL_Crlpath:
           Retrieved_Gtid_Set: 0501f340-0a94-11ea-ad2b-5254007dcbb3:10-5440870
            Executed_Gtid_Set: 0501f340-0a94-11ea-ad2b-5254007dcbb3:1-5440870,
137347eb-0a94-11ea-ad2b-525400dd43f8:1-531071
                Auto_Position: 0
1 row in set (0.00 sec)

[root@dba_test_002 ~]#

重于正常同步了!

gtid 1032错误案例的更多相关文章

  1. MySQL数据库“十宗罪”【十大经典错误案例】

    原文作者:张甦 来源:http://blog.51cto.com/sumongodb 今天就给大家列举 MySQL 数据库中,最经典的十大错误案例,并附有处理问题的解决思路和方法,希望能给刚入行,或数 ...

  2. ORA-07445&ORA-00108错误案例

    由于需要ORACLE的UAT测试环境,克隆了虚拟机后,修改IP地址后,启动实例遇到了ORA-07445 &ORA-00108错误. 案例环境:   SQL> select * from ...

  3. jquery ajax 总是还未等到success回调就刷掉了,就进入了onError函数的错误案例分析

    jquery ajax 总是还未等到success回调就刷掉了,就进入了onError函数的错误案例分析: 同样的请求同时请求了2次,然后第二次的请求把第一次的给刷掉了! (比如:<div on ...

  4. expdp错误案例

    转自:https://www.cnblogs.com/kerrycode/p/3960328.html Oracle数据泵(Data Dump)使用过程当中经常会遇到一些奇奇怪怪的错误案例,下面总结一 ...

  5. cocos2dx 3.1从零学习(四)——内存管理(错误案例分析)

    本篇内容文字比較较多,可是这些都是建立在前面三章写代码特别是传值的时候崩溃的基础上的.可能表达的跟正确的机制有出入,还请指正. 假设有不理解的能够联系我.大家能够讨论一下,共同学习. 首先明白一个事实 ...

  6. http500:服务器内部错误案例详解(服务器代码语法错误或者逻辑错误)

    http500:服务器内部错误案例详解(服务器代码语法错误或者逻辑错误) 一.总结 服务器内部错误可能是服务器中代码运行的时候的语法错误或者逻辑错误 二.http500:服务器内部错误案例详解 只是一 ...

  7. gtid 1032同步异常处理

    gtid  1032同步异常处理 .sql # 在从库中执行 ; ,); ,); ,); ,); ; mysql> select * from fudao_student_lable; +--- ...

  8. MySQL GTID 主从复制错误修复方法

    https://yq.aliyun.com/articles/155827?spm=5176.8067842.tagmain.6.RFPTAL MySQL 传统的主从复制方式使用 master_log ...

  9. MySQL数据库的10大经典错误案例

    学习任何一门技术的同时,其实就是自我修炼的过程.沉下心,尝试去拥抱数据的世界! 案例一 Too many connections (连接数过多,导致连接不上数据库,业务无法正常进行) 问题还原: 解决 ...

随机推荐

  1. 9.centos7 安装mysql

    sudo yum install libaio # 安装依赖包 检查 MySQL 是否已安装 sudo yum list installed | grep mysql 也可以通过命令 rpm -qa| ...

  2. python报错及处理 -- 不断总结

    ModuleNotFoundError: No module named 'PIL' 解决方法: 运行命令:pip install Pillow IndentationError: expected ...

  3. X86逆向15:OD脚本的编写技巧

    本章节我们将学习OD脚本的使用与编写技巧,脚本有啥用呢?脚本的用处非常的大,比如我们要对按钮事件进行批量下断点,此时使用自动化脚本将大大减小我们的工作量,再比如有些比较简单的压缩壳需要脱壳,此时我们也 ...

  4. X86逆向14:常见的脱壳手法

    本章节内容将介绍软件的脱壳技术.什么是加壳?加壳就是用来压缩或者保护软件不被非法修改破解的一种工具,而脱壳就是将已经加壳的程序从壳中剥离出来,既然能给程序进行加壳,那也就会有相应的脱壳方法,本节课我们 ...

  5. 美团2017年CodeM大赛-初赛B轮 黑白树 (树形dp)

    大意: 给定树, 初始每个点全为白色, 点$i$有权值$k_i$, 表示选择$i$后, 所有距离$i$小于$k_i$的祖先(包括i)会变为黑色, 求最少选多少个点能使所有点变为黑色. 链上情况的话, ...

  6. 转 RTSP客户端模拟器(TCP方式,Python实现)

    转自: http://www.cnblogs.com/MikeZhang/archive/2012/10/29/rtspTcpClient_DSS_20121029.html 由于某种需求,工作中需要 ...

  7. API接口利用ActionFilterAttribute实现接口耗时检测

    1.主要代码 using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; ...

  8. Atcoder-SoundHound Inc.Contest 2018 -Masters Tournament-比赛报告

    A C++ Example #include <iostream> #include <cstdio> #include <cstdlib> #include &l ...

  9. visual studio2015 搭建pro*c开发编译环境

    关于pro*c是什么,这里不做介绍,主要说明如何在vs2015里面开发pro*c程序,并编译exe执行文件 一.vs2015环境配置 1.新建一个空的vc++项目,如下图 2.右击项目属性,添加相关的 ...

  10. Const指针 、 指向const的指针 、引用、指针

    1. const指针和 指向const的指针 指向const的指针: 不允许通过指针来改变其指向的const值 const double *cptr *cptr = 42;  // error! 指针 ...