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 で垂直方向の中央揃えを実装するいくつかの方法の概要

フロントエンドのレイアウト プロセスでは、水平方向の中央揃えを実現するのは比較的簡単で、通常は ma...

ネイティブ JavaScript を使用して計算機のサンプル コードを開発する

計算機の主な機能は数値計算を実行することです。計算機機能の Web インスタンスを開発すると、js ...

HTML DOM入門_PowerNode Javaアカデミー

DOMとは何ですか? JavaScript を使用すると、HTML ドキュメント全体を再構築できます...

Linux で Spring Boot プロジェクトを開始および停止するためのスクリプトの例

Springboot プロジェクトを開始するには、次の 3 つの方法があります。 1. メインメソッ...

docker システムコマンドセットの使用

目次docker システム df docker システム プルーンdocker systemc 情報...

フレックスレイアウトのスペース間の最後の行の左揃えの問題を解決する方法

まずはコードと効果を見てみましょう↓ <スタイル> 。主要 { アウトライン: 1px ...

ウェブページの要素の検査とソースコードの表示の違いについて

Chrome ブラウザで Web ページを開くと、ページを右クリックすると 2 つの非常によく似たオ...

Vueプロジェクトが完了した後にプロジェクトを最適化する方法の例

目次1. 開発モードとリリースモードに異なるパッケージエントリポイントを指定する2. 外部CDNリソ...

【Webデザイン】E-WebTemplates の美しい海外の Web ページ テンプレート (FLASH+PSD ソース ファイル+HTML) を共有します

これらはすべて海外のE-WebTemplates WebサイトからのWebページテンプレートであり、...

mysql インストーラ ウェブ コミュニティ 5.7.21.0.msi インストール グラフィック チュートリアル

この記事の例では、Androidの9グリッド画像を表示するための具体的なコードを参考までに共有してい...

Bツリーの削除プロセスの紹介

前回の記事 https://www.jb51.net/article/154157.htm では、B...

Docker で Elasticsearch Kibana と ik Word Segender をデプロイする詳細な説明

esインストール docker pull elasticsearch:7.4.0 # -d : バッ...

ウェブサイトのビジュアルデザイン(画像とテキスト)における情報伝達の役割と方法

現代の Web ビジュアル デザインは、初期の情報の積み重ねから、その後のグラフィックスと抽象化、そ...

Docker ベースの Etcd 分散デプロイメントの方法と手順

1. 環境整備1.1 基本環境NTP設定: 省略 #時間の一貫性を確保するためにNTPサービスを設定...