pt-heartbeat を使用して MySQL レプリケーションの遅延を監視する方法の詳細な説明

pt-heartbeat を使用して MySQL レプリケーションの遅延を監視する方法の詳細な説明

pt-ハートビート

データベースがマスターとスレーブ間で複製される場合、複製ステータスとデータ遅延は非常に重要な指標となります。では、それらをどのように監視すればよいのでしょうか?

pt-heartbeat は、PERCONA によって開発されたツールで、MySQL および PostgreSQL のレプリケーション遅延を監視するために特別に設計されています。

比較的成熟しており、Uber などの大企業でも使用されています。

以下に詳しい紹介を載せておきます。

監視の原則

マスターにタイムスタンプ フィールドを持つハートビート テーブルを作成します。pt-heartbeat は定期的にタイムスタンプ値を変更します。

スレーブは、マスターの変更アクションのタイムスタンプを含むハートビート テーブルをコピーし、それをスレーブのローカル時間と比較して、レプリケーション遅延の値である差を取得し、レプリケーションの状態が正常かどうか、および遅延時間が期待どおりかどうかを判断します。

pt-heartbeat は実際のレプリケーション レコードに基づいて計算されるため、レプリケーションにどの方法を使用するかは関係ありません。

pt-heartbeat は、レプリケーション階層の任意の深さを監視できます。ハートビート テーブルには server_id フィールドがあるため、スレーブのレイテンシを監視するときに参照する server_id を指定できます。たとえば、このスレーブとそのマスターのマスター間のレイテンシを知りたい場合は、ターゲット マスターの server_id を指定するだけです。

pt-heartbeat は時間に厳密に依存するため、マスターとスレーブの時間が同期されていることを確認する必要があります。

使用例

マスターのハートビート テーブルを作成し、周期的な更新操作を実行します。次のコマンドを実行します。

マスターの接続情報を指定します。-- --create-table -D master1 master1 データベースにハートビート テーブルを作成することを意味します。次のパラメータは、更新を実行する時間間隔を指定します。

次に、スレーブを監視してコマンドを実行します。

--monitor パラメータは監視を実行することを示します。前のパラメータは、スレーブ接続情報、データベース、テーブル名など、監視対象の情報です。

出力情報の例:


0.00sは現在の遅延情報を示し、[0.00s、0.00s、0.00s]は1m、5m、15mの平均値を示します。

インストールプロセス

CentOS7 でのインストール プロセスは次のとおりです。


pt-heartbeat の公式ドキュメント アドレス: https://www.percona.com/doc/percona-toolkit/2.1/pt-heartbeat.html

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に少しでもお役に立てれば幸いです。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM をご愛顧いただき、ありがとうございます。

以下もご興味があるかもしれません:
  • MySQLサーバーは--read-onlyオプションで実行されているため、このステートメントを実行できません
  • mysql データベースmysql: [エラー] 不明なオプション ''--skip-grant-tables''
  • MySQL ビューの一貫性を確保する方法の詳細な説明 (チェック オプション付き)
  • MySQL に絵文字を保存するときに表示されるエラー メッセージ「java.sql.SQLException: 文字列値が正しくありません:'\xF0\x9F\x92\xA9\x0D\x0A...'」の解決方法
  • MySQL の NULL と空の文字列
  • ODBC経由でMySQLとPHPを任意のデータベースに接続する例
  • Ubuntu で apt-get を使用して mysql をインストールおよび完全にアンインストールする方法の詳細な説明
  • AES_ENCRYPT() と AES_DECRYPT() を使用して MySQL を暗号化および復号化する正しい方法の例
  • mysqlサーバーは--skip-grant-tablesオプションで実行されています
  • MySQL pt-slave-restart ツールの使い方の紹介

<<:  Javascript における分割代入構文の詳細な説明

>>:  .Htaccess を使用して、Web サイトへの悪意のある IP 攻撃を防ぎ、指定されたドメイン名へのアクセスを禁止し、マシン クローラーを禁止し、ホットリンクを禁止します。

推薦する

JavaScript はマウスのドラッグを実装して div のサイズを調整します

この記事では、マウスをドラッグしてdivのサイズを調整するJavaScriptの具体的なコードを参考...

Vue はシームレスなカルーセル効果 (マーキー) を実現します

この記事では、シームレスなカルーセル効果を実現するためのVueの具体的なコードを例として紹介します。...

DOCTYPE要素詳細説明完全版

1. 概要この記事では、DOCTYPE要素を体系的に説明します。同時に、多くの情報を調べました。イン...

ViteでReactプロジェクトを構築する方法

目次序文Viteプロジェクトを作成する改修プロジェクトディレクトリの規則その他の構成序文毎日鳩、火ば...

Docker はすべてのコンテナをバッチ起動して閉じます

Dockerの場合すべてのコンテナコマンドを開始する docker を起動します $(docker ...

MySQL ビッグデータ クエリ最適化エクスペリエンスの共有 (推奨)

本格的な MySQL 最適化! MySQL のデータ量が少ない場合は最適化は不要です。データ量が多い...

HTML における Div と table の違い (あらゆる側面から詳細に説明)

1: 速度と読み込み方法の違いdivとtableの違いは速度ではなく、読み込み方法です。速度はネット...

Linuxのtopコマンド出力の詳細な説明

序文皆さんは Linux で top コマンドを使ったことがあると思います。私は Linux に触れ...

Zabbix の psk 暗号化と zabbix_get 値の組み合わせ

Zabbix バージョン 3.0 以降、Zabbix サーバー、Zabbix プロキシ、Zabbix...

Dockerコンテナとホスト間のデータ相互作用の概要

序文実稼働環境で Docker を使用する場合、多くの場合、データを複数のコンテナ間で永続化または共...

データベースマルチテーブル接続クエリの実装方法の詳細説明

データベースマルチテーブル接続クエリの実装方法の詳細説明結合演算子を使用して複数のテーブルクエリを実...

MySQLのREDOログ(リドゥログ)とロールバックログ(アンドゥログ)の詳しい説明

序文:前回の記事では、MySQL システムでよく使用されるログをいくつか説明しました。実は、トランザ...

Linux での VMWare15.5 のインストールに関するチュートリアル

Linux に VMWare をインストールするには、公式 Web サイト https://www....

Linux での MySQL 5.7.18 バイナリ パッケージのインストール チュートリアル (デフォルトの構成ファイル my_default.cnf なし)

現在、MySQL を学習中です。私は完全な初心者で、Linux についてはあまり知りません。今後の作...

URL を入力すると、バックグラウンドでは具体的に何が起こるのでしょうか?

ソフトウェア開発者は、ネットワーク アプリケーションがどのように動作するかを階層的に完全に理解してい...