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サブクエリの詳細な例

サブクエリの分類返された結果セットによる分類サブクエリは、返される結果セットの違いに応じて、テーブル...

ハイパーリンクを使用してリンクファイルを開く HTML 方式の紹介

a および href 属性 HTML では、英語ではアンカーと呼ばれるハイパーリンクを表すために &...

MySQL の詳細な単一テーブルの追加、削除、変更、クエリの CRUD ステートメント

MySQL の追加、削除、変更、クエリステートメント1. 練習シートを作成するここでの練習表は3つの...

MySQL の大きなデータ テーブルにフィールドを追加する方法

序文フィールドの追加は誰でもよく知っていると思います。簡単に記述できます。MySQL テーブルにフィ...

Alibaba Cloud ServerにMySQLデータベースをインストールする方法の詳細な説明

序文学習中に Zookeeper をインストールする必要があったため、仮想マシンに常に問題が発生した...

Vue でインデックスをキー属性値として使用することが推奨されないのはなぜですか?

目次序文キーの役割差分アルゴリズムにおけるキーの役割ヘッドノードを同期するテールノードを同期する新し...

Navicat がデータベース データ構造をインポートする際に発生するエラー datetime(0) の SQL レポートの問題を解決します。

エラー発生: MySQL 5.7 から SQL にデータベースをエクスポートし、それを MySQL ...

Mac に Windows サービスを備えた仮想マシンをインストールする方法

1. 仮想マシンをダウンロードする公式ダウンロードウェブサイト: https://www.vmwar...

MySQL におけるユニーク制約と NULL の詳細な説明

序文説明を簡略化するために以前に設定した要件は、他のグループから MQ メッセージを受信し、データベ...

Tomcat クラスローダーの実装方法とサンプルコード

Tomcat は内部的に複数の ClassLoader を定義し、アプリケーションとコンテナーが異な...

CSS3 で translate と transition を使用する方法

translate と transition は非常に強力で、習得するのは不可能だといつも感じていま...

nginxフロー制御とアクセス制御の実装

nginx トラフィック制御レート制限は非常に便利ですが、Nginx では誤解され、誤って設定される...

MySQLの保存場所を新しいディスクに移行する方法

1. 新しいディスクを準備し、現在のルートパーティションと同じファイルシステムでフォーマットし、ディ...

忘れられたMySQLパスワードとログインエラーの問題について簡単に説明します

MySQL ログイン パスワードを忘れた場合、解決方法は実はとても簡単です。MySQL メイン構成フ...

入力タイプとは何を意味し、入力を制限する方法

入力を制限する一般的な方法1. ボタンが押されたときに点線のボックスを消すには、入力に属性値hide...