製品&サポートサービス

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 Editions
Oracle Cloudトータルサポート
Percona
MariaDBプロダクト・サポート・サービス
エンタープライズOSSサポート
高可用性ソリューション
OSSシステムソリューション
Navicat
SQL Diagnostic Manager for MySQL
SYNCNEL
OSS保守サポートサービス
Microsoft Azure
お問い合わせ
各MySQL保守サービス見積依頼
スマートスタイルOSSストア
Oracle Gold Partner

ページトップへ