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はターミナルで中国語を入力できない問題を解決します

推薦する

CSSのline-heightを継承する方法

Line-height はどのように継承されますか?30px などの特定の値を書き込むと、この値が継...

Linux仮想マシンの静的IPアドレスを構成するための手順を完了します

序文多くの場合、仮想マシンを使用します。たとえば、一部のテストは検出されません。何かを壊すことを心配...

nacos が mysql に接続できない場合の解決策

理由nacos の pom が依存する mysql バージョンが、mysql バージョンと一致してい...

Django がローカル MySQL データベースに接続する手順 (pycharm)

ステップ1:setting.pyでデータベースを変更する # データベースを構成する DATABAS...

DIV、テーブル、XHTML のウェブサイト構築の違いの分析と説明

簡単に言えば、ウェブサイト構築とは、「この人はどんな外見をしているのか」と「この人はどんな内面を持っ...

役に立つメタ設定方法(必読)

<meta name="viewport" content="...

JavaScript における継承の 3 つの方法

継承する1. 継承とは何か継承: まず、継承とは関係、つまりクラス間の関係です。JS にはクラスはあ...

CSS: 訪問した疑似クラスセレクタの秘密の記憶

昨日、a:visited を使用して「Guess You Like」の右側にある訪問済みテキストの色...

Vue を使用してパブリック アカウントの Web ページを開発する方法

目次プロジェクトの背景始めるvue-cliでプロジェクトを作成するモバイル適応についてnormali...

MacOS Catalina アップグレード後の VMware ブラック スクリーン問題に対する完璧な解決策の詳細な説明

MacOS Catalina アップグレード後の VMware ブラック スクリーンに対する完璧なソ...

Vue は Tencent Map を統合して API を実装します (デモ付き)

目次執筆の背景プロジェクトの説明事前準備注記執筆の背景以前のプロジェクトではTencent Maps...

Vue で className として空の文字列を使用することはなぜ推奨されないのですか?

目次空の文字列 '' と null を比較するケース1: 空の文字列を使用する &#...

MySQL テーブルスペースとは何ですか?

今日皆さんにお伝えしたいトピックは、「皆さんがよく話題にするテーブル スペースとは一体何でしょうか。...

MySQL データの集約とグループ化

多くの場合、データを実際に取得せずに要約する必要があり、 MySQLこの目的のために特別な関数を提供...

Centos7.5 構成 Java 環境のインストール Tomcat の説明

Tomcat は Java 言語をベースにした Web サーバー ソフトウェアです。この記事では主に...