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

推薦する

MySQLのインデックスシステムがB+ツリーを使用する理由の分析

目次1. インデックスとは何ですか? 2. インデックスはなぜ必要なのでしょうか? 3. インデック...

仮想マシンのディスクサイズを拡張する方法

Vmvare が仮想マシンのディスク サイズを設定した後、ディスク領域が不足していることがわかりまし...

21 の MySQL 標準化および最適化のベスト プラクティス!

序文良い習慣はすべて宝物です。この記事は、SQL の後悔の治療法、SQL パフォーマンスの最適化、S...

...

JavaScript の高度なプログラミングの基本参照型

目次1. 日付2. 正規表現3. オリジナルパッケージタイプ序文:参照値(オブジェクト)は、 Dat...

Mysql 5.7.19 無料インストール版 (64 ビット) の設定方法に関する詳細なチュートリアル

公式サイトから mysql-5.7.19-winx64 をダウンロードします。これはシステムの 64...

MySQL のソート関数 field() の詳細な例

序文私たちの日常の開発プロセスでは、ソートが頻繁に使用され、そのような要求がある場合もあります。たと...

Ubuntu 18.04 で MySQL のインストール時にパスワードが要求されない場合の解決方法

Ubuntu 1804 への MySQL 5.7 のインストールについて詳しく紹介します。 MySQ...

mysql-8.0.16 winx64 最新インストール チュートリアル (画像とテキスト付き)

最近、データベースについて学び始めました。最初にやったことは、データベースとは何か、データベースとデ...

Dockerを使用してNextCloudネットワークディスクを展開する方法

NextCloud コンピュータ上の任意のファイルやフォルダを共有し、NextCloud サーバーと...

シンプルなナビゲーションバー機能を実現するHTML+CSS

さっそく、コードを見てみましょう(初心者:特に言うことはありません) <!DOCTYPE ht...

純粋なテキストとアイコン付きのボタンを実現するための HTML+CSS

この記事では、いくつかの基本的なページ要素の実装方法をまとめており、後で更新される予定です。まず、私...

CSS 表示テーブルの適応的な高さと幅の問題の解決策

定義と使用法display プロパティは、要素が生成するボックスのタイプを指定します。例示するこの属...