mysql MGR シングルマスターとマルチマスターモードの切り替えの知識ポイントの詳細な説明

mysql MGR シングルマスターとマルチマスターモードの切り替えの知識ポイントの詳細な説明

メインライブラリの実行

CREATE DATABASE test CHARACTER SET utf8 COLLATE utf8_general_ci;
使用テスト;
テーブルが存在しない場合は作成します h1 (id int(10) PRIMARY KEY AUTO_INCREMENT、name varchar(50) NOT NULL);
test.h1に値(1,"wang"),(2,"guo"),(3,"yang"),(4,"he")を挿入します。
test.h1 から * を選択します。

ライブラリからのテスト

test.h1 から id>3 の部分を削除します。
エラー 1290 (HY000): MySQL サーバーは --super-read-only オプションで実行されているため、このステートメントを実行できません

1. シングルマスターモードからマルチマスターモードに切り替える

1.1. グループレプリケーションを停止します(すべての MGR ノードで実行します)。

グループレプリケーションを停止します。
グローバル group_replication_single_primary_mode を OFF に設定します。
グローバル group_replication_enforce_update_everywhere_checks=ON を設定します。

1.2. 任意の mgr ノードを実行する: 186

グローバル group_replication_bootstrap_group を ON に設定します。
GROUP_REPLICATIONを開始します。
グローバル group_replication_bootstrap_group を OFF に設定します。

1.3、他のmgrノードで実行します: 194 195

GROUP_REPLICATIONを開始します。

1.4. mgr グループ情報の表示 (任意の MGR ノードから表示)

performance_schema.replication_group_members から * を選択します。

すべての MGR ノードのステータスがオンラインであり、ロールが PRIMARY であり、MGR マルチマスター モードが正常に確立されていることがわかります。

MGR マルチマスター モードでノード データの同期を確認します。

MGR-node1 のデータを更新します。

MGR-node2のデータを更新

MGR-node3のデータを更新

MGR マルチマスター モードでは、すべてのノードが読み取りおよび書き込み操作を実行できます。

2. シングルマスターモードに戻す

2.1. グループレプリケーションを停止します(すべての MGR ノードで実行します)。

グループレプリケーションを停止します。
グローバル group_replication_enforce_update_everywhere_checks=OFF を設定します。
グローバル group_replication_single_primary_mode を ON に設定します。

2.2. マスターノードとしてノードを選択し、マスターノード上で(186)を実行します。

グローバル group_replication_bootstrap_group を ON に設定します。
GROUP_REPLICATIONを開始します。
グローバル group_replication_bootstrap_group を OFF に設定します。

2.3. 残りのノード、つまりライブラリノード(194 195)で実行します。

GROUP_REPLICATIONを開始します。

2.4. MGR グループ情報を表示します (どの MGR ノードでも利用可能)。

performance_schema.replication_group_members から * を選択します。

シングルマスター モードに戻すと、マスターには読み取りおよび書き込み権限が与えられ、他の 2 つのスレーブ ノードは読み取り専用となり、書き込みはできなくなります。

MGRグループクラスタのホワイトリストネットワークセグメントを設定する: ノードが配置されているネットワークセグメントを追加します

グループレプリケーションを停止します。
グローバル group_replication_ip_whitelist="127.0.0.1/32,172.16.60.0/24,172.16.50.0/24,172.16.51.0/24" を設定します。
グループレプリケーションを開始します。
「group_replication_ip_whitelist」のような変数を表示します。

知識ポイントの拡張

MySQL グループ レプリケーション (MGR) は、MySQL バージョン 5.7.17 で導入されたデータベースの高可用性と高スケーラビリティを実現するソリューションです。プラグインの形式で提供され、分散データの最終的な一貫性を実現します。MGR の機能は次のようにまとめられます。

  • 高い一貫性: データの一貫性を確保するために、分散 Paxos プロトコルに基づいてグループ レプリケーションが実装されます。
  • 高い耐障害性: 自動検出メカニズムにより、大多数のノードがダウンしていない限り、システムは動作を継続でき、アンチブレインスプリット保護メカニズムが組み込まれています。
  • 高いスケーラビリティ: ノードの追加と削除により、グループ メンバー情報が自動的に更新されます。新しいノードが参加すると、他のノードとのデータの整合性が取れるまで、他のノードからの増分データが自動的に同期されます。
  • 高い柔軟性: シングルマスターモードとマルチマスターモードを提供します。シングルマスターモードでは、メインデータベースに障害が発生した後にマスターを自動的に選択できます。すべての書き込みはメインノードで実行されます。マルチマスターモードでは、マルチノード書き込みをサポートします。

以上がMySQL MGRシングルマスターとマルチマスターモード切り替えの知識ポイントの詳細な説明の詳細な内容です。MySQL MGRシングルマスターとマルチマスターモード切り替えの詳細については、123WORDPRESS.COMの他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • MySQL 8.0.15 で MGR シングル マスターと複数スレーブを構成する方法
  • MySQL MGR の利点は何ですか?
  • mysql 8.0.18 mgr のインストールと切り替え機能
  • MySQL 8.0.18 はクローンプラグインを使用して MGR 実装を再構築します
  • MySQL 5.7 MGR シングルマスター決定マスターノード方式の詳細説明
  • MySQL MGR 構築時の一般的な問題と解決策

<<:  史上最も便利な Zookeeper サーバーの構築方法 (推奨)

>>:  BootStrap グリッド間に隙間を残す解決策

推薦する

SQL における distinct と row_number() over() の違いと使い方

1 はじめにデータベース内のデータを操作するための SQL 文を記述するときに、いくつかの不快な問題...

JavaScript におけるさまざまなバイナリオブジェクトの関係の詳細な説明

目次序文さまざまなオブジェクト間の関係配列バッファ型付き配列Uint8ClampedArray文字間...

MySQL での数値のフォーマットの詳細な説明

最近、仕事の都合で、MySQL で数字をフォーマットする必要がありましたが、インターネット上にはほと...

React を使って小さなプログラムを書くための Remax フレームワークのコンパイル プロセス分析 (推奨)

Remax は、実行時に構文制限のないソリューションを採用した React を使用して小規模なプロ...

州と市町村の連携を簡単に実現するJavaScript

この記事では、省と市の簡単な連携を実現するためのJavaScriptの具体的なコードを参考までに紹介...

docker compose を使ってワンクリックで分散構成センター Apollo を展開するプロセスの詳細な説明

導入分散について話すときは、分散構成センター、分散ログ、分散リンク トラッキングなどについて考える必...

JS WebSocket 切断理由とハートビートの仕組みの詳しい説明

1. 切断理由WebSocket が切断される理由は多数あります。WebSocket が切断されたと...

HTML で #include ファイルを使用する例

a.htmとb.htmの2つのファイルがあります。同じディレクトリ内のa.htmの内容は次のとおりで...

スライダーを作成するためのネイティブ js ドラッグ アンド ドロップ機能のサンプル コード

ドラッグ アンド ドロップはフロントエンドでよく使われる機能であり、多くのエフェクトで js のドラ...

CSS 水平プログレスバーと垂直プログレスバーの実装コード

時々、素敵なスクロールバー効果を見るのは楽しいものです。ここでは、CSSを使用してそれを実現する方法...

VueでTypeScriptを使用する方法

導入近年、TypeScript を求める声がますます高まり、TypeScript はフロントエンドに...

Vue ルーティング遅延読み込みの詳細

目次1. ルートの遅延読み込みとは何ですか? 2. ルートの遅延読み込みの使用1. ルートの遅延読み...

Mac MySQL のルートパスワードをリセットするチュートリアル

免責事項:このパスワード リセット方法は、Homebrew によってインストールされた MySQL ...

jsでシンプルなパズルゲームを実現する

この記事では、簡単なパズルゲームを実装するためのjsの具体的なコードを参考までに共有します。具体的な...