レプリケーションがおかしくなって、キーの重複や対象行が存在しないといった問題で行の更新や削除が出来なくなった時、
STOP SLAVE; SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START
SLAVE;
を実行して解決するというのは、MySQLの世界ではよくあることだ。これがうまくいって、不正な行やSQL文を修正できることもあるだろう。しかし、その文が複数の文からなるトランザクションの一部だったらどうなるだろう?そうすると、面白いことに、不正な行をスキップすることで、トランザクション全体がスキップされてしまう。これは、
ドキュメント にはちゃんと書かれている。例を見てみよう。
マスタには3行存在している。
master> …[さらに読む]