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 攻撃を防ぎ、指定されたドメイン名へのアクセスを禁止し、マシン クローラーを禁止し、ホットリンクを禁止します。

推薦する

Tomcat と WebLogic で純粋な HTML ファイルを展開するプロセスの分析

1. まず、純粋なHTMLファイルにはindex.htmlというエントリが必要です。 2. Tomc...

Selenium+testng を使用して Docker で Web 自動化を実現する方法

序文長い間さまざまな資料を読んで、ついに selenium+testng のパラメータ化の問題を解決...

vscode で console.log を書く 2 つの簡単な方法の詳細な説明

(I) 方法 1: 事前にスクリプト タグ内に直接定義します。この HTML ファイルにのみ適用され...

UTF-8 および GB2312 ウェブエンコーディング

最近、多くの学生から Web ページのエンコーディングについて質問を受けています。gb2312 と ...

Linux で time(NULL) 関数と localtime() を使用して現在の時刻を取得する方法

time(); 関数関数プロトタイプ: time_t time(time_t *timer)関数の目...

LinuxでHomebrewを使用する正しい方法

多くの人が Linux Homebrew を使用しています。これをより良く使用するための 3 つのヒ...

Linuxでのaliasコマンドの使い方の詳細な説明

1. 別名の使用alias コマンドは、コマンドのエイリアスを設定するために使用されます。このコマン...

MySQL 5.7.20 無料インストールバージョンの設定方法グラフィックチュートリアル

インターネット上で多くの関連チュートリアルを見てきましたが、インストール プロセスにはまだいくつかの...

Axios の二次カプセル化の例 プロジェクトのデモ

1. なぜパッケージングを行うのですか?全体的なコード呼び出し、リクエストの公開処理、パーソナライズ...

JS+AJAX は、州、市、地区のドロップダウン リストのリンクを実現します。

この記事では、州、市、地区のドロップダウンリストのリンクを実現するためのJS + AJAXの具体的な...

Nginx リバース プロキシを使用してクロスドメイン問題を解決する方法の詳細な説明

質問前回のクロスドメイン リソース共有に関する記事では、ドメイン間で Cookie を送信する場合、...

JavaScriptの知識ポイントの詳しい説明

目次1. JavaScriptの基礎2. 基本的なJavaScript構文3. JavaScript...

MySQL Workbenchのダウンロードと使用方法のチュートリアルの詳細な説明

1. MySQL WorkbenchをダウンロードするWorkbench は、MySQL のグラフィ...

MySQL をクリーンにアンインストールする方法 (テスト済みで効果的)

Mysql を完全にアンインストールするにはどうすればいいですか?以下の手順に従って実行してくださ...

CSS が最初のサイクルで画像を読み込むために @keyframes を使用するときに発生するホワイトギャップの問題 (フラッシュ画面) をすばやく解決します。

問題の説明: CSS アニメーション プロパティを使用すると、ループが最初に読み込まれたときに白いギ...