START SLAVE [thread_name [, thread_name] ... ] START SLAVE [SQL_THREAD] UNTIL MASTER_LOG_FILE = 'log_name', MASTER_LOG_POS = log_pos START SLAVE [SQL_THREAD] UNTIL RELAY_LOG_FILE = 'log_name', RELAY_LOG_POS = log_pos thread_name = IO_THREAD | SQL_THREAD
START SLAVE
はオプションなしで、両方のスレーブスレッドを開始します。I/O
スレッドは、マスタサーバからクエリを読み取り、リレーログに保存します。SQL
スレッドはリレーログからクエリを読み取り、実行します。
注意: START SLAVE
がスレーブスレッドの開始に成功すると、エラーなしで戻ります。ただし、その場合でも、スレーブスレッドが開始した後に停止することがあります(マスタへの接続に失敗したり、バイナリログの読み取りに失敗した場合など)。START
SLAVE
は、そのような場合に警告を出しません。エラーログ内で、スレーブスレッドによって生成されるエラーメッセージをチェックするか、SHOW
SLAVE STATUS
を実行してスレッドが適切に実行しているかどうかをチェックする必要があります。
MySQL 4.0.2 で、ステートメントに
IO_THREAD
オプションまたは
SQL_THREAD
オプションを追加して、どちらのスレッドを開始するか指定できるようになりました。
MySQL 4.1.1 以降、UNTIL
節を追加して、マスタバイナリログまたはスレーブリレーログの指定ポイントに
SQL
スレッドが到達するまでにスレーブを開始するよう指定できます。SQL
スレッドがそのポイントに達すると、停止します。ステートメントで
SQL_THREAD
オプションが指定されていれば、SQL
スレッドだけを開始します。そうでない場合は、両方のスレッドを開始します。SQL
スレッドがすでに実行中の場合、UNTIL
節は無視され、警告が出力されます。
UNTIL
節では、ログファイル名と位置の両方を指定する必要があります。マスタオプションとリレーログオプションを混同しないでください。
UNTIL
条件は、後続の STOP
SLAVE
ステートメント、または
UNTIL
節を含まない START
SLAVE
ステートメント、またはサーバの再起動でリセットされます。
UNTIL
節は、レプリケーションのデバッグや、特定のステートメントをスレーブにレプリケートさせたくない場合、その直前までレプリケートするときに使用します。たとえば、マスタで
DROP TABLE
ステートメントを実行しているが、これが賢明ではなかった場合、UNTIL
を使用してその直前までをレプリケートするようスレーブに指示できます。
イベントを調べるには、マスタログまたはリレーログで
mysqlbinlog
を使用するか、SHOW BINLOG EVENTS
ステートメントを使用します。
UNTIL
を使用してスレーブにセクションごとのクエリのレプリケーションを実行させる場合は、--skip-slave-start
オプションでスレーブを起動し、スレーブの起動と同時に
SQL
スレッドを開始しないようにすることを推奨します。このオプションは、予期しないサーバの再起動に備えて、コマンドラインではなくオプションファイルで使用するのが良いでしょう。
SHOW SLAVE STATUS
ステートメントには、UNTIL
条件の現在の値を表示する出力フィールドが含まれます。
このコマンドは、MySQL 4.0.5 より前は
SLAVE START
と呼ばれていました。
しばらくは、SLAVE START
も下位互換性のために認められますが、将来は廃止されます。
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.