5.6 GTID 啟用情況下, 從庫跳過一個事物的方法 sql_slave_skip_counter 失效.

babyyellow發表於2019-03-04

5.6 資料庫報錯了.    


從庫 報錯了,之前 現在從庫上刪除了一條垃圾表, 


然後在主庫上 刪除了 垃圾表, 然後從庫報錯. 




           Last_IO_Errno: 0

                Last_IO_Error: 

               Last_SQL_Errno: 1051

               Last_SQL_Error: Error 'Unknown table 'yq_user_reg_invit_bak20160222'' on query. 

Default database: ''. Query: 'DROP TABLE `yq_user_reg_invit_bak20160222` /* generated by server */'

  Replicate_Ignore_Server_Ids: 

             Master_Server_Id: 110

                  Master_UUID: dfd7a18d-a9aa-11exxxxxxxxxxxxxxxxxxxxxx

             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: 190304 16:19:05

               Master_SSL_Crl: 

           Master_SSL_Crlpath: 

           Retrieved_Gtid_Set: dfd7a18d-a9aa-11e8-afe5-40f2e99dd7d2:1-256481574

            Executed_Gtid_Set: a29497dd-afe8-11e8-9898-40f2e9dc3512:1-2,

dfd7a18d-a9aa-11e8-afe5-40f2e99dd7d2:1-256461742

                Auto_Position: 1

1 row in set (0.00 sec)



stop  slave 以後   執行   sql_slave_skip_counter  + 1  之後 , 不管用了. 


mysql.youqianhua.sock@(none)> set global sql_slave_skip_counter=1 ;

ERROR 1858 (HY000): sql_slave_skip_counter can not be set when the server is running with @@GLOBAL.GTID_MODE = ON. Instead, for each transaction that you want to skip, generate an empty transaction with the same GTID as the transaction



那麼新的方案就要跟上了.  


stop  slave;

set   gtid_next='dfd7a18d-a9aa-11e8-afe5-40f2e99dd7d2:256461743' ; 

begin;

commit;

SET gtid_next = 'AUTOMATIC';


start slave ; 


根據 指示 操作就行了.   注意 gtid 跟  show  slave  status 中輸出的  next gtid 的寫法的差異  + 1  了. 




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/133735/viewspace-2637504/,如需轉載,請註明出處,否則將追究法律責任。

相關文章