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

推薦する

CSS トランジションを使用した円形ホバー効果のサンプルコード

この記事では ソースコードのオンラインプレビューとダウンロード今日のチュートリアルでは、円のホバー効...

Mysql の主キーと一意キーの違いのまとめ

主キーとは何ですか?主キーは、テーブル内の各タプル (行) を一意に識別するテーブル内の列です。主キ...

MySQL (InnoDB) がデッドロックを処理する方法の詳細な説明

1. デッドロックとは何ですか?正式な定義は次のとおりです: 2 つのトランザクションが相手側で必要...

WeChatアプレットはウォーターフォールフローのページングスクロール読み込みを実装します

この記事では、WeChatアプレットのウォーターフォールフローページングスクロールロードを実装するた...

Vue ページ監視ユーザープレビュー時間機能実装コード

最近のビジネスでは、オンライン トレーニング システムが特定のオンライン プレビュー ページに対する...

Linux システムが VMware にインストールされているかどうかを確認する方法

現在の Linux システムが VMware にインストールされているかどうかを確認する方法を教えて...

Ubuntuのバックアップ方法(4種類)のまとめ

方法1:リスピンを使用するには、次の手順に従ってください。 sudo add-apt-reposit...

Reactコンポーネント通信の詳細な説明

目次コンポーネント通信の概要コンテンツ3つの方法まとめコンポーネントコミュニケーション - 父から息...

DockerでPython環境をパッケージ化するプロセスの詳細な説明

docker パッケージング Python 環境の手順は次のとおりです。 1 pip listの下に...

Reactは無限ループスクロール情報を実装する

この記事では、無限ループスクロールを実現するためのReactの具体的なコードを参考までに紹介します。...

VMware Workstation のインストール (Linux カーネル) Kylin グラフィック チュートリアル

この記事では、VMware WorkstationにKylinをインストールする方法を参考までに紹介...

Python スクリプトを Ubuntu で直接実行する方法

翻訳プログラムを例に挙げてみます。前回はWindowsでのアプリケーションのパッケージ化についてお話...

MySQL はどのようにしてデータの整合性を確保するのでしょうか?

オンライン ビジネスにとってデータの一貫性と整合性が重要であることは明らかです。データが失われないよ...

最新の仮想マシン VMware 14 インストール チュートリアル

まず、VMware 14のアクティベーションコードをお渡ししますFF31K-AHZD1-H8ETZ-...

MySQL はリレーショナルデータベースですか?

MySQL はリレーショナル データベース管理システムです。リレーショナル データベースは、すべて...