• gtid 1032错误案例


    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 statusG;
    *************************** 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 statusG;

    # 再次出现异常
    mysql> show slave statusG;
    *************************** 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 statusG;


    mysql> show slave statusG;
    *************************** 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 ~]#

    重于正常同步了!

  • 相关阅读:
    将训练好的Tensorflow模型部署到web应用中
    python pip升级
    python time
    python 队列模拟递归遍历目录(广度遍历)
    python 栈模拟递归遍历目录(深度遍历)
    python 递归遍历目录
    python 队列
    python 栈
    python 递归
    python 语音模块
  • 原文地址:https://www.cnblogs.com/bjx2020/p/11983928.html
Copyright © 2020-2023  润新知