10bet网址
MySQL 5.6リファレンスマニュアル
本手册下载
PDF (Ltr)- 26.8 mb
PDF (A4)- 26.8 mb


17.3.8準同期レプリケション

MySQL 5.6は,非同期レプリケーションを内蔵していますが,さらにプラグインによって実装される準同期レプリケーションへのインタフェースをサポートします。このセクションでは,準同期レプリケ。後続のセクションでは,準同期レプリケーションへの管理インタフェース,およびこれをインストール,構成,およびモニターする方法について説明します。

MySQLレプリケションはデフォルトで非同期です。マスターはイベントをそのバイナリログに書き込みますが,スレーブがそれらを取得して処理したかどうかまたはその日時を認識しません。非同期レプリケーションでは,マスターがクラッシュしても,それがコミットしたトランザクションがスレーブに転送されていない場合があります。つまり,このケースでマスターからスレーブへのフェイルオーバーが発生すると,マスターに関係するトランザクションがないサーバーにフェイルオーバーされる場合があります。

準同期レプリケションは非同期レプリケションの代替として使用できます。

  • スレブは,マスタに接続されるときに準同期対応かどうかを伝えます。

  • 準同期レプリケーションがマスター側で有効であり,準同期スレーブが少なくとも1つある場合,マスター上でトランザクションコミットを実行するスレッドは,コミット後にブロックされ,少なくとも1つの準同期スレーブがそのトランザクションのすべてのイベントを受け取ったことを通知するか,タイムアウトが発生するまで,待機します。

  • スレーブは,イベントがそのリレーログに書き込まれてディスクにフラッシュされたあとにのみ,トランザクションのイベントを受け取ったことを通知します。

  • スレーブからのトランザクション受け取り通知がない状態でタイムアウトが発生した場合,マスターは非同期レプリケーションに戻ります。少なくとも1の準同期スレブが追い付いたときに,マスタションに戻ります。

  • 準同期レプリケションはマスタとスレブの両方で有効になっている必要があります。準同期レプリケションがマスターで無効になっている場合、またはマスター上で有効でもスレーブ上でそうなっていない場合は、マスターは非同期レプリケーションを使用します。

マスターは,ブロック中(コミットを実行したあとにスレーブからの通知を待機中)はトランザクションを実行したセッションに戻りません。ブロックが終了すると,マスタ,はそのセッションに戻り,ほかのステ,トメントの実行に進めます。この時点で,トランザクションはマスター側でコミット済みで,そのイベントを受け取ったことが少なくとも1つのスレーブから通知されています。

ブロックはバイナリログに書き込まれるロールバック後にも発生し,これは非トランザクションテーブルを変更するトランザクションがロールバックされるときに発生します。ロールバックされるトランザクションは,トランザクションテーブルに影響しない場合を含めて,ログが記録されます。非トランザクションテブルへの変更はロルバックできず,スレブに送信される必要があるためです。

トランザクションコンテキストで発生しないステトメントの場合(まり,トランザクションが开始事务またはSET autocommit = 0で起動されなかったとき),自動コミットが有効になっていて,各ステートメントは暗黙的にコミットされます。準同期レプリケションでは、明示的なトランザクションコミットと同様に、マスターはこのような各ステートメントをコミットしたあとにブロックされます。

準同期レプリケションの意味を理解するには,非同期および完全同期レプリケションと比較してください。

  • 非同期レプリケーションでは,マスターはイベントをそのバイナリログに書き込み,スレーブは準備ができたときにそれらを要求します。帐号ベントがスレ帐号ブに必ず到達することは保証されていません。

  • 完全同期レプリケーションでは,マスターがトランザクションをコミットすると,マスターがトランザクションを実行したセッションに戻る前に,すべてのスレーブもトランザクションをコミットします。これの欠点は,トランザクションの完了が大きく遅れる場合があることです。

  • 準同期レプリケションは,非同期および完全同期レプリケションの中間です。マスターはコミット後,少なくとも1つのスレーブがイベントを受け取ってログを記録するまで待機します。すべてのスレーブが受け取りを通知するのを待機せず,スレーブ側でイベントが完全に実行されてコミットされたことではなく,受け取りのみを要求します。

準同期レプリケションでは,非同期レプリケションに比べて,デタの完全性が向上します。コミットが成功したことが返されると,データが少なくとも2つの場所(マスター上と少なくとも1つのスレーブ上)に存在することがわかります。マスターはコミットしたけれども,マスターがスレーブからの通知を待機中にクラッシュが発生した場合は,トランザクションがスレーブに到達できなかった可能性があります。

準同期レプリケーションは,バイナリログイベントをマスターからスレーブに送信できる速度を制限することで,ビジーセッションに速度制限を設定することもできます。あるユザがとてもビジのときは,これによって速度が遅くなり,一部の配備状況で役立ます。

準同期レプリケーションは,スレーブを待機する必要性によってコミットが遅くなるため,パフォーマンスに若干影響します。これは,デタ完全性の向上とのトレドオフです。速度低下の量は,スレーブにコミットを送信して,スレーブからの受け取りの通知を待機するための,TCP / IPラウンドトリップ時間以上です。これは,準同期レプリケーションは高速ネットワーク上で通信する近いサーバーに最適で,低速ネットワークで通信する遠いサーバーに最悪であることを意味します。


本手册下载
PDF (Ltr)- 26.8 mb
PDF (A4)- 26.8 mb