製品&サポートサービス

pt-heartbeat

コマンド

pt-heartbeat [ オプション ] [ DSN ] [ --update | --monitor | --check | --stop ]

【主なオプション】

  • ・ [ --update | --monitor | --check | --stop ] の中から少なくとも一つを指定します
      --update : マスタサーバに接続した時間(タイムスタンプ)を更新します
      --monitor : 指定した間隔でレプリケーションの遅延状況を出力します
      --check : レプリケーションの遅延状況を一度だけ出力します
      --stop : pt-heartbeat-sentinelファイルを生成します。このファイルが存在するとupdateとmonitorが機能しなくなります
  • ・ --master-server-id : マスタサーバのサーバIDを指定します
  • ・ --create-table : 遅延状況を記録するheartbeatテーブルを作成します(初めてコマンドを使用する時のみ指定)
  • ・ [ オプション ] : -p パスワード -D データベース名

【主なオプション】

  • ・ --interval : 遅延状況を出力する間隔を指定します(デフォルトでは1秒です)

目的

MySQLサーバのレプリケーションの遅延を測定します

設定ファイル

上記の必須項目を、設定ファイルにまとめておきます
ただし、DSNはコマンドライン上で直接指定する必要があるため、ここでは書きません

 
# touch /etc/percona-toolkit/pt-heartbeat.conf
# vi /etc/percona-toolkit/pt-heartbeat.conf

・設定ファイルの作成

 
# touch /etc/percona-toolkit/pt-heartbeat.conf

・設定ファイルの編集

 
# vi /etc/percona-toolkit/pt-heartbeat.conf
# config for pt-heartbeat.conf
D=repl_test
password=パスワード

・測定するデータベース名

D=repl_test

・マスタ のパスワードを記載

password=パスワード

シナリオ

マスタサーバで以下のSQL文を実行し、レプリケーションラグ測定用のデータベースを作成します

mysql> CREATE DATABASE test;

作成したtestスキーマ上にheartbeatテーブルを作成し、pt-heartbeatを更新するためのデーモンプロセスを開始する

# pt-heartbeat --daemonize -D test --update -h <マスターサーバのIPアドレス> --create-table

スレーブサーバ上で以下のコマンドを実行しpt-heartbeatを開始する(測定間隔:5秒/ラグ推移の平均測定間隔:1秒・3秒・5秒)

# pt-heartbeat -D test --monitor --master-server-id <マスターサーバのサーバーID> --interval 5 --frames 1s,3s,5s

マスターサーバーにて以下のコマンドを実行し、50万件のレコードを読み込むことで遅延を発生させます

[root@localhost employees_db]# mysql -u root -p < employees.sql

結果

データを読み込む際にレプリケーション遅延が発生し、処理が完了するとラグが0に集約していく事が確認できます

[root@localhost ~]# pt-heartbeat -D test --monitor --master-server-id 1000 --interval 5 --frames 1s,3s,5s
0.00s [  0.00s,  0.00s,  0.00s ]
0.00s [  0.00s,  0.00s,  0.00s ]
0.00s [  0.00s,  0.00s,  0.00s ]
1.00s [  1.00s,  0.33s,  0.20s ]
0.00s [  0.00s,  0.33s,  0.20s ]
0.99s [  0.99s,  0.66s,  0.40s ]
0.99s [  0.99s,  0.66s,  0.59s ]
5.99s [  5.99s,  2.65s,  1.79s ]
4.99s [  4.99s,  3.99s,  2.59s ]
3.00s [  3.00s,  4.66s,  3.19s ]
~~~~略~~~~
3.99s [  3.99s,  2.99s,  3.19s ]
3.00s [  3.00s,  2.66s,  3.20s ]
2.99s [  2.99s,  3.33s,  2.99s ]
1.99s [  1.99s,  2.66s,  2.59s ]
3.00s [  3.00s,  2.66s,  2.99s ]
3.99s [  3.99s,  2.99s,  2.99s ]
1.98s [  1.98s,  2.99s,  2.79s ]
0.00s [  0.00s,  1.99s,  2.19s ]
0.00s [  0.00s,  0.66s,  1.79s ]
0.00s [  0.00s,  0.00s,  1.19s ]
0.00s [  0.00s,  0.00s,  0.40s ]
0.00s [  0.00s,  0.00s,  0.00s ]
0.00s [  0.00s,  0.00s,  0.00s ]
0.00s [  0.00s,  0.00s,  0.00s ]

良い点

レプリケーションの遅延状況を確認する事ができます

その他

--stopオプションを使用した場合は以下のように--updateと--monitorが機能しなくなります

[root@localhost Et]# pt-heartbeat --master-server-id 1000 --stop
Successfully created file /tmp/pt-heartbeat-sentinel
[root@localhost Et]# pt-heartbeat --master-server-id 1000 --monitor
[root@localhost Et]# pt-heartbeat --master-server-id 1000 --update
[root@localhost Et]# pt-heartbeat --master-server-id 1000 --check
769.00
[root@localhost Et]#

※ /tmp/pt-heartbeat-sentinelファイルを削除すれば、通常の状態に戻ります

MySQLや関連ソリューションに関するお問い合わせ、お見積などがございましたら、ご連絡ください。

お問い合わせ各MySQL保守サービス見積依頼スマートスタイルOSSストア
各データベース保守サービス比較
各データベース保守サービス見積依頼
契約条項
データベースサポートサービス
MySQL Editions
Oracle Cloud
Percona
MariaDBサブスクリプション
エンタープライズOSSサポート
高可用性ソリューション
OSSシステムソリューション
Navicat
SQL Diagnostic Manager for MySQL
SYNCNEL
OSS保守サポートサービス
Microsoft Azure
お問い合わせ
各MySQL保守サービス見積依頼
スマートスタイルOSSストア
Oracle Gold Partner

ページトップへ