マスター/スレーブの MySQL レプリケーションが本番レベルで 1 日稼働していますが、毎日、レプリケーションが機能しなくなります。しかし、すべてが大丈夫だと言っています:
スレーブのステータスを表示します。Slave_IO_Running を表示し、Slave_SQL_Running は yes です。
私が実行した場合:
stop slave;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
start slave;
レプリケーションが再び機能し、「マスターからの秒数」がゼロになり始めます。しかし、レプリケーションを壊しているものを見つける必要があります。
もう少し深く掘り下げて、私はこれを見つけましたmysql.log
:
2017-06-17 00:19:48 3084 [注] 'SQL_SLAVE_SKIP_COUNTER=1' は、relay_log_file='./mysqld-relay-bin.000055' で実行されました', relay_log_pos='632837719', master_log_name='mysql-bin.000046' , master_log_pos='632837556' と、relay_log_file='./mysqld-relay-bin.000055' の新しい位置, relay_log_pos='638878870', master_log_name='mysql-bin.000046', master_log_pos='638878707'
だから私は実行しました:
[root@ip-172-31-19-9 mysql]# mysqlbinlog --no-defaults -v mysql-bin.000046 --start-position=632837554 --stop-position=632837558
結果は次のとおりです。
/*!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
#170616 17:35:09 server id 1 end_log_pos 120 CRC32 0xcc698d98 Start: binlog v 4, server v 5.6.36-log created 170616 17:35:09
# Warning: this binlog is either in use or was not closed properly. BINLOG '
/UBEWQ8BAAAAdAAAAHgAAAABAAQANS42LjM2LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXAAEGggAAAAICAgCAAAACgoKGRkAAZiN
acw= '/*!*/; ERROR: Error in Log_event::read_log_event(): 'Found
invalid event in binary log', data_len: 4653056, event_type: 68
DELIMITER ;
# End of log file ROLLBACK /* added by mysqlbinlog */; /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; /*!50530 SET
@@SESSION.PSEUDO_SLAVE_MODE=0*/; [root@ip-172-31-19-9 mysql]#
これは何"event_type: 68"
ですか?手がかりはありますか?