ホームページ  >  記事  >  データベース  >  Mysql マスターとスレーブの 3 つのレプリケーション モードとは何ですか?

Mysql マスターとスレーブの 3 つのレプリケーション モードとは何ですか?

WBOY
WBOY転載
2023-05-28 08:49:262227ブラウズ

MySQL 非同期レプリケーション

MySQL 非同期レプリケーションは、マスター/スレーブ レプリケーション プロセス中のデフォルトのレプリケーション モードです。レプリケーションには、マスター I/O スレッド、スレーブ I/O スレッド、およびスレーブ SQL スレッドを含む 3 つのスレッドが関係します。非同期レプリケーションであるため、マスター トランザクションの送信をスレーブが確認する必要はありません。つまり、マスター I/O スレッドがトランザクションを送信した後、スレーブからの応答確認を待つ必要がありません。 /O スレッド。マスターは、ビンログがリレー ログに書き込まれることを保証しません。ログ内。スレーブ I/O がビンログをリレー ログに書き込んだ後、それはスレーブ SQL スレッドによって非同期的に実行され、スレーブ mysql に適用されます。 . スレーブ I/O はスレーブ SQL からの応答確認を必要とせず、リレー ログが完全に書き込まれることを保証しません。

Mysql マスターとスレーブの 3 つのレプリケーション モードとは何ですか?

準同期レプリケーション

従来の非同期レプリケーションの欠点を補うために、MySQL はバージョン 5.5 で準同期レプリケーションを導入しました。従来の非同期レプリケーションよりも改善されました。マスター トランザクションがコミットされる前に、binlog ログがスレーブのリレー ログに書き込まれていることを確認する必要があります。スレーブからマスターへの応答を受信した後でのみ、トランザクションをコミットできます。それにもかかわらず、リレー ログの後半は非同期で実行するために SQL スレッドに渡されます。

Mysql マスターとスレーブの 3 つのレプリケーション モードとは何ですか?

##グループ レプリケーション

従来の非同期レプリケーションと半同期レプリケーションの欠点に基づいて、データの一貫性が保証されず、MySQL は 5.7 で正式にバージョン 17 で正式に導入されました。グループ レプリケーション (MySQL グループ レプリケーション、MGR と呼ばれます) を起動します。

レプリケーション グループは複数のノードで構成されています。トランザクションの送信は、送信する前にグループ内の過半数のノード (N / 2 1) によって解決および承認される必要があります。上図に示すように、レプリケーション グループは 3 つのノードで構成されます。コンセンサス層は整合性プロトコル層です。トランザクションの送信プロセス中にグループ間通信が発生します。2 つのノードがトランザクションを解決 (認証) した場合にのみ、トランザクションは実行できます。最終的には解決されます。送信して応答してください。

グループ レプリケーションを導入する主な目的は、従来の非同期レプリケーションまたは半同期レプリケーションによって引き起こされるデータの不整合の問題を解決することです。グループ レプリケーションは、分散整合性プロトコル (Paxos プロトコルのバリアント) に依存して、分散データの究極の整合性を実現し、真のデータ高可用性ソリューションを提供します (本当に高可用性であるかどうかはまだ議論されていません)。これが提供するマルチ書き込みソリューションは、マルチアクティブ ソリューションを実現するという希望をもたらします。

MGR 環境では、2/n 1 アルゴリズムを実装するには、サーバーの数が 3 つ以上の奇数である必要があります。

Mysql マスターとスレーブの 3 つのレプリケーション モードとは何ですか?

レプリケーション グループは複数のノード (データベース インスタンス) で構成されます。グループ内の各ノードはデータの独自のコピーを維持し (何も共有しない)、アトミック メッセージとグローバル順序付けを実装します。メッセージを使用して、グループ内のインスタンス データの一貫性を実現します。

MGR のソリューションには次の機能が追加されました

データ整合性保証:クラスター内のほとんどのノードがログを受信できるようにします

ノード書き込みサポート: マルチ書き込みモードでは、クラスター内のすべてのノードに書き込むことができます (ただし、高いデータ一貫性を確保するために 1 から高までの同時実行シナリオを考慮すると、運用環境ではマルチマスター書き込みは選択されず、単一マスター クラスターを使用します)

#フォールト トレランス:

システムに障害が発生した場合 (スプリット ブレインを含む)、システムが引き続き利用可能であることを保証し、二重書き込みがシステムに影響を与えないようにします。MGR ソリューションの現在の影響

    InnoDB テーブルのみをサポートし、各テーブルには書き込みセットの競合検出のための主キーが必要です。
  • GTID 機能をオンにする必要があります。バイナリ ログ形式は ROW に設定する必要があり、プライマリ選択と書き込みに使用されます。 set
  • COMMIT は、スナップショット トランザクション分離レベルの障害シナリオと同様に障害を引き起こす可能性があります
  • 現在、MGR クラスターは最大 9 ノードをサポートします
  • 外部キーとセーブ ポイント機能をサポートせず、グローバル制約の検出と部分的なロールバックを実行できません
  • バイナリ ログはバイナリ イベント チェックサムをサポートしていません

以上がMysql マスターとスレーブの 3 つのレプリケーション モードとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。