sakaikの日々雑感~日常編

sakaikの日々の雑記。食べ物、読み物、お出かけ(旅行)などなど

レプリケーションの既知の問題

MySQLマニュアルより:

4.10.4 レプリケーション機能と既知の問題

・ユーザー変数を使用したクエリは、(まだ) replication-safe ではありません。

・FLUSH コマンドはバイナリログに記録されません。もちろん、スレーブに複製されません。

 こんなことをしてしまったのだった。

SET @kono_id='ID1234';

UPDATE aru_table SET nanika = "kore" WHERE kono_id=@kono_id;

UPDATE betuno_table SET sokokoko = "kore" WHERE kono_id=@kono_id;

...etc

 ユーザ変数はスレッドセーフでないので、スレーブ側では

UPDATE aru_table SET nanika = "kore" WHERE kono_id=null;

 と解釈されエラーになってしまい、レプリケーションを停止させてしまった。キケンキケン。