2013/10/21

Mysql Slave failed to initialize relay log info structure from the repository

何らかの理由で、リレーログが読めなくなってしまった
(今回の場合はhard_copy。。。。。。)

この時は、MySQLは上がっていて、スレーブのステータスもとれるので、SHOW SLAVE STATUSで最後の状態を調べる。

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State:
                  Master_Host: ***.***.***.***
                  Master_User: ********
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000009
:(略)
                   Last_Errno: 1872
                   Last_Error: Slave failed to initialize relay log info structure from the repository
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 4840135
:(略)
1 row in set (0.00 sec)

で、Master_Log_FileとExec_Master_Log_Posを見る。ここまでマスターのバイナリログの実行が終わっているので、
==>失敗したところから再開する!

一旦スレーブをリセットして、ここから再開させる。

RESET SLAVE;

CHANGE MASTER TO
MASTER_HOST='***.***.***.***',
MASTER_USER='********',
MASTER_PASSWORD='********',
MASTER_LOG_FILE='mysql-bin.000009', // Master_Log_Fileのファイル名をセット
MASTER_LOG_POS=4840135; // Exec_Master_Log_Posの値をセット

START SLAVE;

これで、スレーブが再開するか確認。
今回はこれで動き出したようだ。