MySql Slave报警,错误如下:
Relay_Master_Log_File: mysql-bin.0506435
Last_IO_Errno: 1236
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
Master上查看binlog的信息:
mysql> show variables like 'log_bin%';
+---------------------------------+---------------------------------+
| Variable_name | Value |
+---------------------------------+---------------------------------+
| log_bin | ON |
| log_bin_basename | /data/logs/mysql-bin |
| log_bin_index | /data/logs/mysql-bin.index |
| log_bin_trust_function_creators | ON |
| log_bin_use_v1_row_events | OFF |
+---------------------------------+---------------------------------+
mysql>system more /data/logs/mysql-bin.index
/data/logs/mysql-bin.000001
对比发现从库读的binlog文件mysql-bin.0506435,不在/data/logs/mysql-bin.index 中。
原来主库刚才重启过,调整了log_bin_basename,导致重新生成了二进制文件。
由于事故发生在凌晨,此时没有数据写入,也没有收到主从延迟的报警。
所以就直接在slave 上change master 指向新的binlog文件。让从库恢复正常。
事后在用pt-table-checksum ,pt-table-sync 进行数据校验和修复。
Relay_Master_Log_File: mysql-bin.0506435
Last_IO_Errno: 1236
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
Master上查看binlog的信息:
mysql> show variables like 'log_bin%';
+---------------------------------+---------------------------------+
| Variable_name | Value |
+---------------------------------+---------------------------------+
| log_bin | ON |
| log_bin_basename | /data/logs/mysql-bin |
| log_bin_index | /data/logs/mysql-bin.index |
| log_bin_trust_function_creators | ON |
| log_bin_use_v1_row_events | OFF |
+---------------------------------+---------------------------------+
mysql>system more /data/logs/mysql-bin.index
/data/logs/mysql-bin.000001
对比发现从库读的binlog文件mysql-bin.0506435,不在/data/logs/mysql-bin.index 中。
原来主库刚才重启过,调整了log_bin_basename,导致重新生成了二进制文件。
由于事故发生在凌晨,此时没有数据写入,也没有收到主从延迟的报警。
所以就直接在slave 上change master 指向新的binlog文件。让从库恢复正常。
事后在用pt-table-checksum ,pt-table-sync 进行数据校验和修复。