ユーザエラーがないにもかかわらずレプリケーションが機能しない、または不安定であると判断したら、当社にバグレポートを送ってください。バグをトラックダウンするために、できるだけ多くの情報が必要です。ある程度の時間と労力を費やしてバグレポートを準備してください。
バグが再現可能な場合、バグデータベース(http://bugs.mysql.com/)に入力してください。ファントム問題(意図的に再現できないもの)がある場合、以下の手順に従います。
ユーザエラーがないことを確認する。たとえば、スレーブをスレーブスレッド外から更新すると、データの同期が失われ、更新でユニークキー違反となる。この場合、スレーブスレッドは停止し、ユーザが手動でクリーンアップして同期を取り戻すのを待つ。これはレプリケーションの問題ではない。レプリケーションを妨害する外部干渉の問題である。
--log-slave-updates
オプションおよび --log-bin
オプションでスレーブを実行する。これにより、スレーブは受け取った更新を自身のバイナリログに記録する。
レプリケーションの状態をリセットする前に、すべての証拠を保存する。情報がなかったり少ない場合には、問題のトラッキングに時間がかかる。以下のような証拠を収集すること。
マスタからのすべてのバイナリログ
スレーブからのすべてのバイナリログ
問題発見時のマスタでの SHOW MASTER
STATUS
出力
問題発見時のマスタでの SHOW SLAVE
STATUS
出力
マスタおよびスレーブのエラーログ
mysqlbinlog
を使用してバイナリログを調べる。たとえば以下を実行して、問題のあるクエリを見つけることができる。
shell> mysqlbinlog -j pos_from_slave_status /path/to/log_from_slave_status | head
ファントム問題の証拠を収集したら、まず個別のテストケースに分類する努力をしてください。その後、バグデータベース(http://bugs.mysql.com/)に、その問題を、できるだけ多くの情報とともに入力します。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.