MySQL 5.6はスレーブサーバーがマスターから意図的に少なくとも指定した時間遅れる,遅延レプリケーションをサポートします。デフォルトの遅延は0秒です。将master更改为
のMASTER_DELAY
オプションを使用して,遅延をN
秒に設定してください。
将master修改为master_delay =N;
マスタから受信するベントは,マスタ上での実行より少なくともN
秒後になるまで実行されません。例外は,形式記述イベントまたはログファイルローテーションイベントには遅延がなく,これらはSQLスレッドの内部状態にのみ影響します。
遅延レプリケションはいくかの目的に使用できます。
マスタ,上でのユ,ザ,の誤りから保護するため。Dbaは遅延スレブを障害の直前までロルバックできます。
遅延があるときにシステムがどのように動作するかをテストするため。たとえば,アプリケ,ションで,スレ,ブでの大きな負荷が原因で遅延が発生する場合があります。しかし,この負荷レベルを生成するのが難しい場合があります。遅延レプリケ,ションは、負荷をシミュレートしなくても遅延をシミュレートできます。遅延をしているスレーブに関連する条件をデバッグするために使用することもできます。
バックアップをリロ,ドすることなく,デ,タベ,スが以前にどのようであったかを調べるため。たとえば,遅延が1週間で,最後の数日間の開発の前にデータベースがどのようであったかをDBAが確認する必要がある場合には,遅延スレーブを検査できます。
开始的奴隶
および停止奴隶
はすぐに適用され,遅延を無視します。重置的奴隶
は遅延を0にリセットします。
显示奴隶状态
には,遅延に関する情報を提供する次のような3のフィルドがあります。
SQL_Delay
:スレ,ブがマスタ,より遅延する必要がある秒数を示す,負でない整数。SQL_Remaining_Delay
:Slave_SQL_Running_State
が在master执行事件后等待MASTER_DELAY秒
のときに,このフィ,ルドには遅延の残り秒数を示す整数が含まれます。ほかのときは,このフィ,ルドは零
です。Slave_SQL_Running_State
: SQLスレッドの状態を示す文字列(Slave_IO_State
に似ています)。値は,显示PROCESSLIST
で表示される,sqlスレッドの状态
値と同じです。
スレブSQLスレッドがベント実行前に遅延が経過するのを待機しているときは,显示PROCESSLIST
はその状态
値を在master执行事件后等待MASTER_DELAY秒
として表示します。
relay-log.info
ファaapl . exeルに遅延値が含まれるようになり,ファaapl . exeル形式が変更されました。セクション17.2.2.2 "スレ,ブステ,タスログ"を参照してください。たとえば,ファaaplルの最初の行がファaaplル内の行数を示すようになりました。スレーブサーバーをMySQL 5.6より前のバージョンにダウングレードすると,古いサーバーはファイルを正しく読み取りません。これに対処するには,テキストエディタでファaaplルを変更し,行数を含む最初の行を削除します。