MySQL switch the binlog and does not write Previous_gtids_log_event in binlog when something got wrong internel。 The slave will not go further and just switch relaylog forever. And We restart MySQL manually, it Refuses to start because there is no Previous_gtids_log_event in binlog when in gtid-mode=on and enforce-gtid-consistency=true. mysql error message of Refuses to start: 2013-11-29 15:09:38 19711 [Note] InnoDB: 5.6.14 started; log sequence number 198310756 /home/mysql/program/mysql-5.6.10-linux-glibc2.5-x86_64/bin/mysqld: The binary log file '/home/mysql/data/mysqldata56/binlog/mysql-bin.000006' is logically corrupted: The first global transaction identifier was read, but no other information regarding identifiers existing on the previous log files was found. 2013-11-29 15:09:42 19711 [ERROR] Aborting mysqlbinlog -vvv mysql-bin.000005 : /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; # at 4 #131127 20:28:09 server id 152 end_log_pos 120 CRC32 0xe5670aa8 Start: binlog v 4, server v 5.6.14-log created 131127 20:28:09 BINLOG ' WeWVUg+YAAAAdAAAAHgAAAAAAAQANS42LjE0LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXAAEGggAAAAICAgCAAAACgoKGRkAAagK Z+U= '/*!*/; # at 120 #131127 20:28:09 server id 152 end_log_pos 231 CRC32 0xee64e34f Previous-GTIDs # 75b62a79-5710-11e3-ba96-3cd92bee36a8:1-1871, # fbe495d2-5713-11e3-baad-94de80b47c01:1-75421 # at 231 #131127 20:23:47 server id 151 end_log_pos 279 CRC32 0x81331390 GTID [commit=yes] SET @@SESSION.GTID_NEXT= 'fbe495d2-5713-11e3-baad-94de80b47c01:75422'/*!*/; # at 279 #131127 20:23:47 server id 151 end_log_pos 347 CRC32 0x0c8a0ce5 Query thread_id=76799 exec_time=1766 error_code=0 SET TIMESTAMP=1385555027/*!*/; SET @@session.pseudo_thread_id=76799/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=524288/*!*/; SET @@session.auto_increment_increment=2, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=83/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; BEGIN /*!*/; # at 347 #131127 20:23:47 server id 151 end_log_pos 466 CRC32 0x8ba831fe Rows_query # insert into qdata_miss_check (node_name, gmt_modified) values ('test12', '1385555093744205047') # at 466 #131127 20:23:47 server id 151 end_log_pos 529 CRC32 0xe6ead181 Table_map: `test`.`qdata_miss_check` mapped to number 70 # at 529 #131127 20:23:47 server id 151 end_log_pos 584 CRC32 0x808ba4f2 Write_rows: table id 70 flags: STMT_END_F BINLOG ' U+SVUh2XAAAAdwAAANIBAACAAF9pbnNlcnQgaW50byBxZGF0YV9taXNzX2NoZWNrIChub2RlX25h bWUsIGdtdF9tb2RpZmllZCkgdmFsdWVzICgndGVzdDEyJywgJzEzODU1NTUwOTM3NDQyMDUwNDcn Kf4xqIs= U+SVUhOXAAAAPwAAABECAAAAAEYAAAAAAAEABHRlc3QAEHFkYXRhX21pc3NfY2hlY2sAAwMPCAJg AACB0erm U+SVUh6XAAAANwAAAEgCAAAAAEYAAAAAAAEAAgADB/gNCQAABnRlc3QxMvc8W0sEezoT8qSLgA== '/*!*/; ### INSERT INTO `test`.`qdata_miss_check` ### SET ### @1=2317 /* INT meta=0 nullable=0 is_null=0 */ ### @2='test12' /* VARSTRING(96) meta=96 nullable=0 is_null=0 */ ### @3=1385555093744205047 /* LONGINT meta=0 nullable=0 is_null=0 */ # at 584 #131127 20:23:47 server id 151 end_log_pos 615 CRC32 0x51e1e4ee Xid = 1501 COMMIT/*!*/; # at 615 ...... # at 7779914 #131127 23:00:10 server id 151 end_log_pos 7779962 CRC32 0xf21bbe51 GTID [commit=yes] SET @@SESSION.GTID_NEXT= 'fbe495d2-5713-11e3-baad-94de80b47c01:95235'/*!*/; # at 7779962 #131127 23:00:10 server id 151 end_log_pos 7780030 CRC32 0xef045fda Query thread_id=97036 exec_time=260 error_code=0 SET TIMESTAMP=1385564410/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=83/*!*/; BEGIN /*!*/; # at 7780030 #131127 23:00:10 server id 151 end_log_pos 7780149 CRC32 0xd2f7a66d Rows_query # insert into qdata_miss_check (node_name, gmt_modified) values ('test12', '1385564477328364700') # at 7780149 #131127 23:00:10 server id 151 end_log_pos 7780212 CRC32 0xb42577fb Table_map: `test`.`qdata_miss_check` mapped to number 82 # at 7780212 #131127 23:00:10 server id 151 end_log_pos 7780267 CRC32 0x076dd296 Write_rows: table id 82 flags: STMT_END_F BINLOG ' +giWUh2XAAAAdwAAADW3dgCAAF9pbnNlcnQgaW50byBxZGF0YV9taXNzX2NoZWNrIChub2RlX25h bWUsIGdtdF9tb2RpZmllZCkgdmFsdWVzICgndGVzdDEyJywgJzEzODU1NjQ0NzczMjgzNjQ3MDAn KW2m99I= +giWUhOXAAAAPwAAAHS3dgAAAFIAAAAAAAEABHRlc3QAEHFkYXRhX21pc3NfY2hlY2sAAwMPCAJg AAD7dyW0 +giWUh6XAAAANwAAAKu3dgAAAFIAAAAAAAEAAgADB/gZAQAABnRlc3QxMpyUjhSNgzoTltJtBw== '/*!*/; ### INSERT INTO `test`.`qdata_miss_check` ### SET ### @1=281 /* INT meta=0 nullable=0 is_null=0 */ ### @2='test12' /* VARSTRING(96) meta=96 nullable=0 is_null=0 */ ### @3=1385564477328364700 /* LONGINT meta=0 nullable=0 is_null=0 */ # at 7780267 #131127 23:00:10 server id 151 end_log_pos 7780298 CRC32 0x8dae3673 Xid = 50491 COMMIT/*!*/; SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/; # at 7780298 #131127 23:04:30 server id 152 end_log_pos 7780345 CRC32 0x00060677 Rotate to mysql-bin.000006 pos: 4 DELIMITER ; # End of log file ROLLBACK /* added by mysqlbinlog */; /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; you can see: it contain Previous-GTIDs event in the begining of mysql. but in mysql-bin.000006, it has no Previous-GTIDs. mysqlbinlog -vvv mysql-bin.000006: /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; # at 4 #131127 23:04:30 server id 152 end_log_pos 120 CRC32 0x12cb8a7b Start: binlog v 4, server v 5.6.14-log created 131127 23:04:30 BINLOG ' /gmWUg+YAAAAdAAAAHgAAAAAAAQANS42LjE0LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXAAEGggAAAAICAgCAAAACgoKGRkAAXuK yxI= '/*!*/; # at 120 #131127 23:00:11 server id 151 end_log_pos 168 CRC32 0xae62077a GTID [commit=yes] SET @@SESSION.GTID_NEXT= 'fbe495d2-5713-11e3-baad-94de80b47c01:95236'/*!*/; # at 168 #131127 23:00:11 server id 151 end_log_pos 236 CRC32 0x50455080 Query thread_id=97037 exec_time=260 error_code=0 SET TIMESTAMP=1385564411/*!*/; SET @@session.pseudo_thread_id=97037/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=524288/*!*/; SET @@session.auto_increment_increment=2, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=83/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; BEGIN /*!*/; # at 236 #131127 23:00:11 server id 151 end_log_pos 355 CRC32 0xa79cdebb Rows_query # insert into qdata_miss_check (node_name, gmt_modified) values ('test12', '1385564477835241342') # at 355 #131127 23:00:11 server id 151 end_log_pos 418 CRC32 0x67604bdf Table_map: `test`.`qdata_miss_check` mapped to number 84 # at 418 #131127 23:00:11 server id 151 end_log_pos 473 CRC32 0xc512a20d Write_rows: table id 84 flags: STMT_END_F BINLOG ' +wiWUh2XAAAAdwAAAGMBAACAAF9pbnNlcnQgaW50byBxZGF0YV9taXNzX2NoZWNrIChub2RlX25h bWUsIGdtdF9tb2RpZmllZCkgdmFsdWVzICgndGVzdDEyJywgJzEzODU1NjQ0Nzc4MzUyNDEzNDIn KbvenKc= +wiWUhOXAAAAPwAAAKIBAAAAAFQAAAAAAAEABHRlc3QAEHFkYXRhX21pc3NfY2hlY2sAAwMPCAJg AADfS2Bn +wiWUh6XAAAANwAAANkBAAAAAFQAAAAAAAEAAgADB/gbAQAABnRlc3QxMn7nxDKNgzoTDaISxQ== '/*!*/; ### INSERT INTO `test`.`qdata_miss_check` ### SET ### @1=283 /* INT meta=0 nullable=0 is_null=0 */ ### @2='test12' /* VARSTRING(96) meta=96 nullable=0 is_null=0 */ ### @3=1385564477835241342 /* LONGINT meta=0 nullable=0 is_null=0 */ # at 473 #131127 23:00:11 server id 151 end_log_pos 504 CRC32 0x2dfb90be Xid = 50494 COMMIT/*!*/; the error message of switch the binlog : Status information: Current dir: /home/mysql/data/mysqldata56/mydata/ Running threads: 17 Stack size: 262144 Current locks: lock: 0x7f32e400ee80: lock: 0x7f330c2364c0: lock: 0x7f330c0214a0: lock: 0x1d9f9a30: lock: 0x1d907f00: lock: 0x1d913dc0: lock: 0x1d8ab740: lock: 0x1d8ff310: lock: 0x1d8f3940: lock: 0x1d8d7f60: lock: 0x1d8e5e70: lock: 0x1d8c4440: lock: 0x1d8bcb80: lock: 0x1d8b46c0: lock: 0x135f420: lock: 0x135f340: lock: 0x135e380: lock: 0x135e2a0: lock: 0x135e1c0: lock: 0x135e540: lock: 0x135c780: lock: 0x135f260: lock: 0x135ce80: lock: 0x135d120: lock: 0x135cda0: lock: 0x135d040: lock: 0x135ccc0: lock: 0x135cf60: lock: 0x135d660: lock: 0x135d580: lock: 0x135d4a0: lock: 0x135cbe0: lock: 0x135c940: lock: 0x135cb00: lock: 0x135c860: lock: 0x135ca20: lock: 0x135d3c0: lock: 0x135d2e0: lock: 0x135d200: lock: 0x135eee0: lock: 0x135f180: lock: 0x135f0a0: lock: 0x135efc0: lock: 0x135eb60: lock: 0x135ea80: lock: 0x135e9a0: lock: 0x135e8c0: lock: 0x135e7e0: lock: 0x135ed20: lock: 0x135e700: lock: 0x135e620: lock: 0x135ec40: lock: 0x135e460: lock: 0x135e000: lock: 0x135e0e0: lock: 0x135df20: lock: 0x135de40: lock: 0x135dac0: lock: 0x135dd60: lock: 0x135dc80: lock: 0x135d9e0: lock: 0x135dba0: lock: 0x135d900: lock: 0x135d820: lock: 0x135d740: lock: 0x135ee00: Key caches: default Buffer_size: 8388608 Block_size: 1024 Division_limit: 100 Age_limit: 300 blocks used: 0 not flushed: 0 w_requests: 0 writes: 0 r_requests: 0 reads: 0 handler status: read_key: 39291 read_next: 0 read_rnd 2258 read_first: 1272 write: 118480 delete 0 update: 38000 Table status: Opened tables: 113 Open tables: 82 Open files: 22 Open streams: 0 Alarm status: Active alarms: 0 Max used alarms: 0 Next alarm time: 0 Events status: LLA = Last Locked At LUA = Last Unlocked At WOC = Waiting On Condition DL = Data Locked Event scheduler status: State : INITIALIZED Thread id : 0 LLA : n/a:0 LUA : n/a:0 WOC : NO Workers : 0 Executed : 0 Data locked: NO Event queue status: Element count : 0 Data locked : NO Attempting lock : NO LLA : init_queue:139 LUA : init_queue:149 WOC : NO Next activation : never 2013-11-27 23:04:30 1419 [Warning] 'proxies_priv' entry '@ root@test2' ignored in --skip-name-resolve mode. may be some internal thread of mysql has crash and restart, but it still run instead of shutdown itself. The slave of it will switch relaylog and not replicate any thing after mysql-bin.000005.