searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

从库GTID不一致问题

2024-09-05 09:26:32
6
0

构造一个错误的gtid

从库中:

set global super_read_only=0;
set gtid_next="9663531a-0517-11ee-a5e2-000000595eed:343";-- 一个假gtid,再设一条新gtid需要重新设
insert into test.t values(70,"5"); -- 插入数据
set global super_read_only=1;

清除错误的gtid

  1. 主库show master status;找到主库uuid的gtid,即变化的gtid,记录前段
  2. 从库stop slave; show master status;找到变化的gtid,记录从库尾段
  3. 从库reset master; set global gtid_purged='主库上不变化的gtid, 主库变化的gtid前段-从库尾段';
  4. start slave;
    gtid恢复正常

问题

误操作导致主从gtid不一致

mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.4.3
                  Master_User: repl
                  Master_Port: 6700
                Connect_Retry: 2
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 5223996
               Relay_Log_File: relay-bin.000002
                Relay_Log_Pos: 4660144
        Relay_Master_Log_File: mysql-bin.000002
             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: 1050
                   Last_Error: Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1 failed executing transaction 'ba6e5921-80fc-11ed-8c72-0000006f173e:29' at master log mysql-bin.000002, end_log_pos 4671612. See error log and/or performance_schema.replication_applier_status_by_worker table for more details about this failure or others, if any.
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 4671433
              Relay_Log_Space: 5213496
              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: 1050
               Last_SQL_Error: Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1 failed executing transaction 'ba6e5921-80fc-11ed-8c72-0000006f173e:29' at master log mysql-bin.000002, end_log_pos 4671612. See error log and/or performance_schema.replication_applier_status_by_worker table for more details about this failure or others, if any.
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 436700
                  Master_UUID: ba6e5921-80fc-11ed-8c72-0000006f173e
             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: 230223 11:37:24
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 105b5b9f-80fd-11ed-a1bd-0000002b3e5c:1-11047,
ba6e5921-80fc-11ed-8c72-0000006f173e:1-1445
            Executed_Gtid_Set: 105b5b9f-80fd-11ed-a1bd-0000002b3e5c:1-10916,
ba6e5921-80fc-11ed-8c72-0000006f173e:1-28
                Auto_Position: 1
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Master_TLS_Version: 
1 row in set (0.00 sec)

解决

在从库

stop slave;
set @@SESSION.GTID_NEXT='ba6e5921-80fc-11ed-8c72-0000006f173e:29';
begin;
commit;
set @@SESSION.GTID_NEXT = AUTOMATIC;
start slave;

show slave status\G
查看是否恢复正常
0条评论
0 / 1000
qinyl
6文章数
0粉丝数
qinyl
6 文章 | 0 粉丝
qinyl
6文章数
0粉丝数
qinyl
6 文章 | 0 粉丝
原创

从库GTID不一致问题

2024-09-05 09:26:32
6
0

构造一个错误的gtid

从库中:

set global super_read_only=0;
set gtid_next="9663531a-0517-11ee-a5e2-000000595eed:343";-- 一个假gtid,再设一条新gtid需要重新设
insert into test.t values(70,"5"); -- 插入数据
set global super_read_only=1;

清除错误的gtid

  1. 主库show master status;找到主库uuid的gtid,即变化的gtid,记录前段
  2. 从库stop slave; show master status;找到变化的gtid,记录从库尾段
  3. 从库reset master; set global gtid_purged='主库上不变化的gtid, 主库变化的gtid前段-从库尾段';
  4. start slave;
    gtid恢复正常

问题

误操作导致主从gtid不一致

mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.4.3
                  Master_User: repl
                  Master_Port: 6700
                Connect_Retry: 2
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 5223996
               Relay_Log_File: relay-bin.000002
                Relay_Log_Pos: 4660144
        Relay_Master_Log_File: mysql-bin.000002
             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: 1050
                   Last_Error: Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1 failed executing transaction 'ba6e5921-80fc-11ed-8c72-0000006f173e:29' at master log mysql-bin.000002, end_log_pos 4671612. See error log and/or performance_schema.replication_applier_status_by_worker table for more details about this failure or others, if any.
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 4671433
              Relay_Log_Space: 5213496
              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: 1050
               Last_SQL_Error: Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1 failed executing transaction 'ba6e5921-80fc-11ed-8c72-0000006f173e:29' at master log mysql-bin.000002, end_log_pos 4671612. See error log and/or performance_schema.replication_applier_status_by_worker table for more details about this failure or others, if any.
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 436700
                  Master_UUID: ba6e5921-80fc-11ed-8c72-0000006f173e
             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: 230223 11:37:24
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 105b5b9f-80fd-11ed-a1bd-0000002b3e5c:1-11047,
ba6e5921-80fc-11ed-8c72-0000006f173e:1-1445
            Executed_Gtid_Set: 105b5b9f-80fd-11ed-a1bd-0000002b3e5c:1-10916,
ba6e5921-80fc-11ed-8c72-0000006f173e:1-28
                Auto_Position: 1
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Master_TLS_Version: 
1 row in set (0.00 sec)

解决

在从库

stop slave;
set @@SESSION.GTID_NEXT='ba6e5921-80fc-11ed-8c72-0000006f173e:29';
begin;
commit;
set @@SESSION.GTID_NEXT = AUTOMATIC;
start slave;

show slave status\G
查看是否恢复正常
文章来自个人专栏
文章
6 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0