Description:
when master rotate binary log, slave maybe get a error:could not find next log
but m3306.019751 exists in master's index file. run "start salve" can fix it
example:
(root@127.0.0.1) [(none)]> show slave status\G
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: 127.0.0.1
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: m3306.019751
Read_Master_Log_Pos: 4
Relay_Log_File: relay.039504
Relay_Log_Pos: 237
Relay_Master_Log_File: m3306.019751
Slave_IO_Running: No
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: 4
Relay_Log_Space: 5187
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: 1236
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'could not find next log; the first event 'm3306.019749' at 154, the last event read from '/data/mysql_3306/mysqllog/binlog/m3306.019750' at 4705, the last byte read from '/data/mysql_3306/mysqllog/binlog/m3306.019750' at 4705.'
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 677003306
Master_UUID: 5532adf0-3224-11f1-9038-525400b8c565
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 more updates
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp: 260409 15:37:55
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set: 5532adf0-3224-11f1-9038-525400b8c565:10-12
Executed_Gtid_Set: 5532adf0-3224-11f1-9038-525400b8c565:10-12,
7a0ace1b-3224-11f1-9fb1-525400b8c565:1-9
Auto_Position: 0
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
1 row in set (0.00 sec)
How to repeat:
Unable to repeat stably, just need rotate binary log.
Suggested fix:
fsync @@log_bin_index's parent dir after move_crash_safe_index_file_to_index_file finished
example: my_sync_dir_by_file(name)
Description: when master rotate binary log, slave maybe get a error:could not find next log but m3306.019751 exists in master's index file. run "start salve" can fix it example: (root@127.0.0.1) [(none)]> show slave status\G *************************** 1. row *************************** Slave_IO_State: Master_Host: 127.0.0.1 Master_User: repl Master_Port: 3306 Connect_Retry: 60 Master_Log_File: m3306.019751 Read_Master_Log_Pos: 4 Relay_Log_File: relay.039504 Relay_Log_Pos: 237 Relay_Master_Log_File: m3306.019751 Slave_IO_Running: No 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: 4 Relay_Log_Space: 5187 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: 1236 Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'could not find next log; the first event 'm3306.019749' at 154, the last event read from '/data/mysql_3306/mysqllog/binlog/m3306.019750' at 4705, the last byte read from '/data/mysql_3306/mysqllog/binlog/m3306.019750' at 4705.' Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 677003306 Master_UUID: 5532adf0-3224-11f1-9038-525400b8c565 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 more updates Master_Retry_Count: 86400 Master_Bind: Last_IO_Error_Timestamp: 260409 15:37:55 Last_SQL_Error_Timestamp: Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: 5532adf0-3224-11f1-9038-525400b8c565:10-12 Executed_Gtid_Set: 5532adf0-3224-11f1-9038-525400b8c565:10-12, 7a0ace1b-3224-11f1-9fb1-525400b8c565:1-9 Auto_Position: 0 Replicate_Rewrite_DB: Channel_Name: Master_TLS_Version: 1 row in set (0.00 sec) How to repeat: Unable to repeat stably, just need rotate binary log. Suggested fix: fsync @@log_bin_index's parent dir after move_crash_safe_index_file_to_index_file finished example: my_sync_dir_by_file(name)