RESET SLAVE [ALL]
RESET SLAVE
は、スレーブに、マスターのバイナリログ内のそのレプリケーション位置を忘れさせます。このステートメントは、クリーンな開始に使用されるように考慮されています。つまり、マスター情報およびリレーログ情報リポジトリをクリアし、すべてのリレーログファイルを削除して、新しいリレーログファイルを開始します。また、CHANGE MASTER TO
の MASTER_DELAY
オプションで指定されたレプリケーション遅延も 0 にリセットします。RESET SLAVE
を使用するには、スレーブレプリケーションスレッドを停止する必要があります (必要に応じて STOP SLAVE
を使用します)。
スレーブ SQL スレッドによってリレーログファイルが完全には実行されていない場合でも、すべてのリレーログファイルが削除されます。(これは、STOP SLAVE
ステートメントを発行した場合や、スレーブの負荷が高い場合に、レプリケーションスレーブ上に存在する可能性がある条件です。)
MySQL 5.6 では (MySQL 5.1 以前の場合とは異なり)、RESET SLAVE
は、メモリー内に保持されているマスターホスト、マスターポート、マスターユーザー、マスターパスワードなどのレプリケーション接続パラメータを変更しません。つまり、RESET SLAVE
のあとに CHANGE MASTER TO
ステートメントを必要とすることなく START SLAVE
を発行できます。
RESET SLAVE
に続いてスレーブの mysqld がシャットダウンされた場合は、接続パラメータがリセットされます。MySQL 5.6.3 以降では、代わりに RESET SLAVE ALL
を使用して、これらの接続パラメータをリセットできます (Bug #11809016)。
RESET SLAVE ALL
は、CHANGE MASTER TO
によって設定された IGNORE_SERVER_IDS
リストをクリアしません。この問題は MySQL 5.7 で修正されています。(Bug #18816897)
MySQL 5.6.7 以降では、RESET SLAVE
によって進行中のトランザクションの暗黙的なコミットが発生します。セクション13.3.3「暗黙的なコミットを発生させるステートメント」を参照してください。
スレーブ SQL スレッドが停止され、RESET SLAVE
が発行されたときにそのスレッドが一時テーブルをレプリケートしている最中であった場合、これらのレプリケートされた一時テーブルはスレーブ上で削除されます。