MySQL監視グループレプリケーションについて簡単に説明します

MySQL監視グループレプリケーションについて簡単に説明します

元のテキスト: https://dev.mysql.com/doc/refman/8.0/en/group-replication-monitoring.html
翻訳者:くん
現在、MySQL 8.0 の公式ドキュメントを翻訳中です。この記事はセクション 18.3「グループ レプリケーションの監視」です。

1. グループレプリケーションの監視

MySQL がパフォーマンス スキーマを有効にしてコンパイルされていると仮定すると、パフォーマンス スキーマ テーブルを使用してグループ レプリケーションを監視します。グループ レプリケーションでは次のテーブルが追加されます。

  • performance_schema.replication_group_member_stats
  • performance_schema.replication_group_members

これらの既存のパフォーマンス スキーマ レプリケーション テーブルには、グループ レプリケーションに関する情報も表示されます。

  • performance_schema.replication_connection_statusは、グループから受信され、アプライヤ キュー (リレー ログ) にキューイングされたトランザクションなど、グループ レプリケーションに関する情報が表示されます。
  • performance_schema.replication_applier_status 、グループ レプリケーションに関連するチャネルとスレッドのステータスを示します。トランザクションを適用するさまざまなワーカー スレッドが多数ある場合は、このテーブルを使用して、各ワーカー スレッドの動作を監視することもできます。

グループ レプリケーション プラグインによって作成されるレプリケーション チャネルの名前は次のとおりです。

  • group_replication_recovery - このチャネルは、分散リカバリ フェーズに関連するレプリケーションの変更に使用されます。
  • group_replication_applier - このチャネルは、グループからの受信変更に使用されます。グループからのトランザクションが直接適用されるチャネル。

次のセクションでは、各テーブルで利用できる情報について説明します。

2. グループメンバーインスタンスのステータス

グループ内のサーバー インスタンスはさまざまな状態になることができます。サーバーが正常に通信している場合、すべてのサーバーが同じステータスを報告します。ただし、ネットワーク パーティションがある場合、またはグループ メンバーがグループを離れた場合は、クエリの対象となるサーバーに応じて異なる情報が報告されることがあります。グループ メンバーがグループを脱退した場合、他のサーバーのステータスに関する最新情報を報告できなくなることに注意してください。ネットワークパーティションが発生した場合、調停数を超える数のサーバーが切断されると、サーバー同士が連携できなくなります。したがって、異なるサーバー メンバーのステータスを知ることはできません。したがって、サーバーの状態を推測するのではなく、一部のサーバーにアクセスできないことを報告します。

サーバーの状態

分野説明するグループ同期
オンラインメンバーは完全な機能を持つグループ メンバーとして動作できるため、クライアントは接続してトランザクションの実行を開始できます。はい
回復メンバーはグループの有効なメンバーになりつつあり、データ ソース ノード (データ ソース ノード) からステータス情報を受信して​​回復中です。いいえ
オフラインプラグインは読み込まれていますが、メンバーはどのグループにも属していません。いいえ
エラーローカル メンバーのステータス。 回復フェーズ中または変更を適用するときにエラーが発生すると、サーバーはこの状態になります。いいえ
到達不能ローカル障害検出器が、特定のサーバーがクラッシュしたか、誤って切断されたためにサーバーに到達できない可能性があると疑う場合は、サーバーのステータスが「UNREACHABLE」と表示されます。いいえ

重要
インスタンスが ERROR 状態になると、super_read_only オプションが ON に設定されます。 ERROR状態を終了するには、インスタンスを手動でsuper_read_only=OFFに設定する必要があります。

グループ レプリケーションは同期レプリケーションではありませんが、最終的には同期されることに注意してください。より正確には、トランザクションはすべてのグループ メンバーに同じ順序で配信されますが、実行は非同期です。つまり、コミットするトランザクションを受け入れた後、各メンバーは独自のペースでコミットします。

3. replication_group_members テーブル

performance_schema.replication_group_membersテーブルは、グループのメンバーであるさまざまなサーバー インスタンスのステータスを監視するために使用されます。テーブル replication_group_members は、グループの構成が動的に変更されるなど、ビューが変更されるたびに更新されます。これに基づいて、サーバー メンバーはメタデータの一部を交換して同期を維持し、コラボレーションを継続します。情報はグループ レプリケーション メンバー間で共有されるため、すべてのグループ メンバーに関する情報を任意のメンバーから照会できます。このテーブルを使用すると、たとえば次のコマンドを発行して、レプリケーション グループの状態の概要を取得できます。

from performance_group_members; -------------------------------------------------------+| _ replication | 3306 |

この結果から、グループは 3 つのメンバー、各メンバーのホストとポート番号 (クライアントがメンバーに接続するために使用する)、およびメンバーのserver_uuid構成されていることがわかります。 MEMBER_STATE列には、グループ メンバー インスタンスの状態の 1 つが表示されます。この場合は、グループの 3 つのメンバーすべてがONLINEあることが表示され、 MEMBER_ROLE列には、スレーブが 2 つとマスターが 1 つあることが示されます。したがって、グループはシングルプライマリモードで実行されている必要があります。 MEMBER_VERSION列は、グループをアップグレードしていて、グループ内のメンバーが異なるバージョンの MySQL を実行している場合に役立ちます。

4. レプリケーショングループメンバー統計

レプリケーション グループ内の各メンバーは、グループによってコミットされたトランザクションを検証して適用します。検証とアプリケーションに関する統計は、アプリケーション キューがどのように増加しているか、いくつの競合がトリガーされているか、いくつのトランザクションがチェックされているか、どのトランザクションがすべてのメンバーによってコミットされているかなどを把握するのに非常に役立ちます。

performance_schema.replication_group_member_statsテーブルは、認証プロセスに関連するグループ レベルの情報と、レプリケーション グループの各メンバーによって受信および開始されたトランザクションの統計を提供します。情報はグループ メンバー インスタンス間で共有されるため、すべてのグループ メンバーに関する情報を任意のメンバーから照会できます。リモート メンバーの統計の更新は、 group_replication_flow_control_periodオプションで指定されたメッセージ期間によって制御されるため、クエリを実行するメンバーのローカルに収集された統計とは若干異なる場合があることに注意してください。

テーブル replication_group_member_stats

分野説明する
チャンネル名グループレプリケーション チャネルの名前。
ビューIDこのグループの現在のビュー識別子。
メンバーIDこの値は、現在接続しているサーバー メンバーの UUID です。グループの各メンバーはそれぞれ異なる価値を持っています。メンバーそれぞれに固有のものなので、キーワードにもなります。
キュー内のトランザクション数競合検出のチェックを待機しているキュー内のトランザクションの数。競合チェックに合格すると、アプリケーションのためにキューに入れられます。
チェックされたトランザクション数競合がチェックされたトランザクションの数を示します。
検出された競合の数競合検出チェックに失敗したトランザクションの数を表します。
トランザクション行の検証をカウントする競合検出データベース (各トランザクションが検証されるデータベース) の現在のサイズを示します。
すべてのメンバーがコミットしたトランザクション現在のビューのすべてのメンバーに対して正常にコミットされたトランザクションを示します。 この値は定期的に更新されます。
最後の競合のないトランザクション競合がないことがチェックされた最後のトランザクション識別子を表示します。
リモートアプリケータキュー内のトランザクション数このメンバーがレプリケーション グループから受信し、適用を待機しているトランザクションの数。
リモート適用トランザクション数このメンバーがレプリケーション グループから受信し、適用されたトランザクションの数。
ローカル提案トランザクション数このメンバーによって生成され、調整のためにレプリケーション グループに送信されたトランザクションの数。
ローカルロールバックトランザクション数このメンバーによって開始され、レプリケーション グループに送信された後にロールバックされたトランザクションの数。

これらのフィールドは、グループ内のメンバーのパフォーマンスを監視するために重要です。たとえば、グループのメンバーの 1 人が遅延を経験しており、グループの他のメンバーと同期できないとします。この場合、キュー内に多数のトランザクションが表示されることがあります。この情報に基づいて、グループからメンバーを削除するか、グループ内の他のメンバーのトランザクション処理を遅らせるかを決定することで、キューに入れられるトランザクションの数を減らすことができます。この情報は、グループ レプリケーション プラグインのフロー制御を調整する方法を決定する際にも役立ちます。

上記は、MySQL 監視グループ レプリケーションの詳細についての簡単な説明です。MySQL 監視グループ レプリケーションの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • MySQL監視ツールmysql-monitorの詳細な説明
  • MySQL テーブルにおける非主キー列オーバーフロー監視の詳細な説明
  • Grafana+Prometheus を使用して MySQL サービスのパフォーマンスを監視する
  • Zabbix を使用して Nginx/Tomcat/MySQL を監視する方法の詳細なチュートリアル
  • MySQL インデックス使用状況監視スキル (収集する価値あり!)
  • MySQLステートメントを監視する方法の詳細な説明
  • Zabbix が MySQL のマスター/スレーブ状態を監視する方法の詳細な説明
  • MySQL データベース監視ソフトウェア lepus の使用上の問題と解決策
  • PrometheusとGrafanaを使用したMySQLサーバーのパフォーマンス監視の詳細な説明
  • MySQLリアルタイム監視ツールorztopの使い方の紹介
  • 実際のシミュレーション監視MySQLサービスシェルスクリプトの概要
  • MySQLを監視するためのZabbixのインストールと設定に関する基本的なチュートリアル

<<:  JQueryはアニメーション効果の非表示と表示を実装します

>>:  Dockerはターミナルで中国語を入力できない問題を解決します

推薦する

Ubuntu 18.04 Linux システムに JDK と Mysql をインストールする方法

プラットフォームの展開1. JDKをインストールするステップ1. OracleJDKをダウンロードす...

Docker ベースの ELK ログ システムを構築する方法

背景要件:ビジネスがどんどん大きくなると、サーバーの数も増え、さまざまなアクセスログ、アプリケーショ...

Alibaba Cloud ECSインスタンスのユーザールートパスワードとリモート接続方法を設定する方法

Alibaba Cloud サーバーを購入した後、新しいインスタンスが正常に動作できるようにするには...

回転するフリップカードアニメーションの効果を実現するCSS

回転フリップ効果の CSS アニメーション、具体的な内容は次のとおりです。 1. まず2つのボックス...

Centos8 に nginx1.9.1 をインストールする詳細な手順

1.17.9 本当はもっと美味しいNginx のダウンロード アドレス: https://nginx...

Ubuntu 20.04 LTSの詳細なインストール履歴

この記事では、USB ブート ディスクの作成とシステムのインストールについて説明します。システム構成...

mysql ステートメントを使用してユーザー権限を照会するプロセスの詳細な説明

MySQL では、ユーザーに付与された権限をどのように確認しますか? ユーザーに付与される権限は、グ...

nginx ロケーション優先度の詳細な説明

場所表現タイプ~ は大文字と小文字を区別して通常の一致を実行することを示します~*は大文字と小文字を...

Linux カーネル デバイス ドライバー カーネル デバッグ テクニカル ノート集

/****************** * カーネルデバッグ技術 ****************...

CSS は、小さな鋭角のチャット ダイアログ ボックスで鋭角の吹き出し効果を実現します。

1. CSS を使用して、小さな尖った角のチャット ダイアログ ボックスと尖った角の吹き出しを描画...

vue-routeルーティング管理のインストールと設定方法

導入Vue Router 、 Vue.jsの公式ルーティング マネージャーです。 Vue.jsのコア...

2つのボールが交差する粘着効果を実現するCSSサンプルコード

これは純粋に CSS のみを使用して作成されたエフェクトです。簡単に言うと、このエフェクトは画像処理...

ccs3に基づくタイムライン実装方法

Web プロジェクトでは、タイムライン コントロールをよく使用します。この記事では、項目ごとに展開で...

nginx 用の zabbix 5.0 をインストールして展開する方法

目次実験環境インストールと展開データベースをインストールして設定します (ここでは mariadb ...

HTMLタグIDは変数にできる

<table id=" <%=var1%>">、var1...