MySQL レプリケーション Error_code: 1032; 復旧手順

Pocket

MySQL レプリケーションエラー 1032

MySQLでレプリケーションをしていると、たまに見かけるエラーコード。

マスターDBとスレーブDBでデータの不整合が発生した場合に出力され、レプリケーションが解除されてしまう厄介なエラーです。

エラー内容は、slave statusのLast_SQL_Errorを見ると確認できる。

Last_SQL_Error: Could not execute Update_rows event on table テーブル名 Can’t find record in 'テーブル名', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event’s master log mysql-bin.001651, end_log_pos 30615421

根本原因は別途探るとして、暫定対処としてレプリケーションを復活させる。

レプリケーション復旧手順

1.マスター側の状態を確認

mysqlにログインしてマスター状態の確認(※マスターDB側で作業

mysql> show master status\G;
*************************** 1. row ***************************
File: mysql-bin.000025
Position: 1019
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)

File:とPosition:をメモしておく。

2.スレーブ再セット

スレーブサーバー側でスレーブ状態の再設定を実施。

・Slave解除

mysql>stop slave;

・マスターDBのFileとPositionを指定

mysql>change master to master_log_file=’mysql-bin.000025′,master_log_pos=1019;

・Slave再開

mysql>start slave;

 

show slave statusでエラーが解消されていればOK!!

再発する場合は、アプリ側の根本原因を対策しましょう!

IT/パソコン

Posted by wpmaster