MGR (MySQL グループ レプリケーション) は、バージョン 5.7 で追加された新しい機能であり、MySQL プラグインです。 MGR は、新しい高可用性と高スケーラビリティのソリューションです。クラスター内のどのノードのデータも同じであり、どのノードにも書き込むことができるため、真のマルチマスターが実現します。 主に以下の部分が含まれます。 API レイヤー: MySQL サーバーとのやり取りを完了し、サーバーのステータスを取得し、トランザクション管理を完了する役割を担います。 コンポーネント層: 主に 3 つの特定のコンポーネントが含まれます。Capture はトランザクション実行の関連情報を収集し、Applier はクラスター トランザクションをローカルに適用し、Recovery はノード データのリカバリを担当します。 レプリケーション層: 競合の検証、クラスター トランザクションの受信と適用を担当します。 クラスター通信層: Paxos プロトコルに基づくクラスター通信エンジンと上位層コンポーネントとの相互作用インターフェイス。 MGR グループレプリケーション: 従来の非同期レプリケーションと半同期レプリケーションの欠陥(データの一貫性を保証できない)に基づき、MySQL はバージョン 5.7.17 でグループ レプリケーション(MySQL グループ レプリケーション、略して MGR)を正式にリリースしました。 レプリケーション グループは複数のノードで構成されます。トランザクションの送信は、グループ内のノードの過半数 (N/2 + 1) によって決定され、承認されてからでないと実行できません。上図に示すように、レプリケーション グループは 3 つのノードで構成されています。コンセンサス レイヤーは、一貫性プロトコル レイヤーです。トランザクションの送信プロセス中に、グループ間通信が行われます。トランザクションは、2 つのノードが承認した後にのみ送信および応答できます。 グループ レプリケーションの導入は、主に、従来の非同期レプリケーションや半同期レプリケーションで発生する可能性があるデータの不整合の問題を解決するために行われます。グループ レプリケーションは、分散一貫性プロトコル (Paxos プロトコルのバリアント) に依存して、分散環境でデータの最終的な一貫性を実現し、真に高可用性のデータ ソリューションを提供します (本当に高可用性であるかどうかはまだ議論されていません)。これが提供するマルチ書き込みソリューションは、マルチアクティブソリューションの実現への希望をもたらします。 MGR は分散データベース アーキテクチャを実装し、その基礎となる分散基盤は Paxos プロトコルです。 Paxos は、分散データベース システムにおけるトランザクションの送信順序を保証するために使用されます。 MGR はスレーブ チャネルを使用しますが、リモートで送信された Binlog イベントを実行するためにこのチャネルの実行スレッド (Applier スレッド) のみを使用し、Binlog イベントの送信にはこのチャネルを使用しません。 MGR は、非同期レプリケーションの Binlog イベント転送メカニズムを使用せず、通信に MySQL サービス ポートも使用しません。 MGR は通信用に独立した TCP ポートを作成します。各 MySQL サーバー上のグループ レプリケーション プラグインはこのポートを介して相互に接続され、相互に直接通信できます。 Binlog イベントの送信は、非同期レプリケーションのような単純なポイントツーポイント送信ではありません。 MGR はデータを送信するときに Paxos プロトコルを使用します。 Paxos プロトコルは、データ転送の一貫性とアトミック性を保証します。 MGR は、マルチマスター レプリケーションを実装するためのコア テクノロジである Paxos プロトコルに基づいて、分散ステート マシン レプリケーション メカニズムを構築します。 主な利点は3つあります。 1. スプリット ブレインを回避: MGR ではスプリット ブレインは発生しません (ただし、ネットワーク パーティションが発生する可能性があることに注意してください。MGR の動作は、パラメータ group_replication_unreachable_majority_timeout=0/N の設定に応じて若干異なります)。 2. データ一貫性の保証: MGR は優れた冗長性機能を備えており、Binlog イベントが少なくともメンバーの半分以上に複製されることを保証できます。メンバーの半分以上が同時に障害を起こさない限り、データ損失は発生しません。また、MGR は、Binlog イベントがメンバーの半数以上に送信されない限り、ローカル メンバーがトランザクションの Binlog イベントを Binlog ファイルに書き込んでトランザクションをコミットしないことを保証します。これにより、ダウンしたサーバーに、グループ内のオンライン メンバーに存在しないデータが存在しないことが保証されます。したがって、ダウンしたサーバーを再起動すると、特別な処理を行わずにグループに参加できます。 3. マルチノード書き込みサポート: マルチ書き込みモードでは、クラスター内のすべてのノードに書き込むことができます。 上記は、MySQL MGR の利点の詳細です。MySQL MGR の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: Linux Jenkins 構成スレーブノード実装プロセス図
>>: Linux で AIDE に基づいてファイルシステムの整合性を検出する方法
CSS Sprite は、CSS スプライトとも呼ばれ、画像結合技術です。この方法は、複数の小さなア...
マウスが画像上にあるときにズームインおよびズームアウトするには、JS を使用します。具体的なコードは...
問題の背景: docker を使用してプロジェクトをデプロイする場合、プロジェクト内で印刷コントロー...
アプリケーションが牛のように遅い理由は数多くあります。ネットワーク、システム アーキテクチャ、または...
まず、ハードディスクデバイスにデータディスクがあるかどうかを確認します # まずfdisk -lを実...
序文この記事では主に、MySQL で大規模なデータ テーブルのコピーの効率を向上させることに関する関...
目次1. v-forループでは常にキーを使用する2. 特定のスコープ内でv-forループを使用する3...
この記事では、MySQL ビューの原理と使用法についてまとめます。ご参考までに、詳細は以下の通りです...
テーブルの基本構文<table>...</table> - テーブルを定義し...
MySQL での SQL モードの表示と設定MySQL はさまざまなモードで実行でき、さまざまなシナ...
序文Nginx (「エンジン エックス」と発音) は、リバース プロキシ、ロード バランサ、HTTP...
1. MySQL マスタースレーブ非同期1.1 ネットワーク遅延MySQLのマスタースレーブレプリケ...
mysql 5.7.19 winx64解凍版のインストールチュートリアルを収録しました。具体的な内容...
MySQL データベースでは、null は一般的な状況です。MySQL での null に関する注意...
目次Tomcat でプロジェクトを展開する 3 つの方法プロジェクトをwebappsディレクトリに直...