pt-replication-stat

概要

レプリケーションのマスターのノードの統計情報を参照してレプリケーションの実行状況を表示します。指定したインターバルごとに連続的に表示することも可能です。

PostgreSQL 9.1またはそれ以降のバージョンで動作します。PostgreSQL 9.0は pg_stat_replication システムビューが無いため、動作しません。

実行方法

pt-replication-stat [option...] [delay [count]]

オプション

-h, --host=HOSTNAME
-p, --port=PORT
-U, --username=USERNAME
-d, --dbname=DBNAME

出力項目

PID マスターノードで動作しているWAL送信プロセスのプロセスID
NAME レプリケーション先として登録されているスレーブノードの名称
HOST スレーブノードのホスト名またはIPアドレス
PORT スレーブノードに接続しているマスターノードのポート番号
STATE スレーブノードの状態です。 startupbackupcatchupstreaming のいずれかを取る。
SENT スレーブへ送信されたWAL上の位置
WRITTTEN スレーブ上でのWALバッファへの書き込みされたWAL上の位置
FLUSHED スレーブ上でのWALファイルへの同期書き込みされたWAL上の位置
REPLAYED スレーブ上でのデータファイルへの適用されたWAL上の位置
PRI スレーブノードが同期レプリケーションの場合の、ノードの優先度を表示します。
MODE 動作しているモードを表示します。sync は同期モード、async は非同期モード、potential は非同期モードで動作中ではあるが同期モードに昇格する可能性がある。

実行例

ホスト 127.0.0.1 のポート 5433 にユーザ postgres で接続し、5秒ごとに統計情報を2回表示して終了します。

$ pt-replication-stat -h 127.0.0.1 -p 5433 -U postgres 5 2
Sat Mar 28 21:45:23 JST 2015
+------+----------+-----------+-------+-----------+-----------+-----------+-----------+-----------+-----+--------+
| PID  |   NAME   |    HOST   |  PORT |   STATE   |    SENT   |  WRITTTEN |  FLUSHED  |  REPLAYED | PRI |  MODE  |
+------+----------+-----------+-------+-----------+-----------+-----------+-----------+-----------+-----+--------+
|      |          |           |       | local     | 0/5F30398 | 0/5F300B0 |           |           |     | master |
| 3323 | replica1 | 127.0.0.1 | 55580 | streaming | 0/5F300B0 | 0/5F300B0 | 0/5F300B0 | 0/5F2FE48 |   0 | async  |
| 3367 | replica2 | 127.0.0.1 | 55589 | streaming | 0/5F300B0 | 0/5F300B0 | 0/5F2FE48 | 0/5F2FE48 |   0 | async  |
+------+----------+-----------+-------+-----------+-----------+-----------+-----------+-----------+-----+--------+

Sat Mar 28 21:45:28 JST 2015
+------+----------+-----------+-------+-----------+-----------+-----------+-----------+-----------+-----+--------+
| PID  |   NAME   |    HOST   |  PORT |   STATE   |    SENT   |  WRITTTEN |  FLUSHED  |  REPLAYED | PRI |  MODE  |
+------+----------+-----------+-------+-----------+-----------+-----------+-----------+-----------+-----+--------+
|      |          |           |       | local     | 0/608CD68 | 0/608CAC0 |           |           |     | master |
| 3323 | replica1 | 127.0.0.1 | 55580 | streaming | 0/608CAC0 | 0/608CAC0 | 0/608C7D8 | 0/608C7D8 |   0 | async  |
| 3367 | replica2 | 127.0.0.1 | 55589 | streaming | 0/608CAC0 | 0/608CAC0 | 0/608C7D8 | 0/608C7D8 |   0 | async  |
+------+----------+-----------+-------+-----------+-----------+-----------+-----------+-----------+-----+--------+

$

localhost のデフォルトポート(5432)に接続して、5秒ごとに統計情報を表示し続けます。CTRL-Cで終了します。

$ pt-replication-stat -h localhost 5
Sat Mar 28 21:45:23 JST 2015
+------+----------+-----------+-------+-----------+-----------+-----------+-----------+-----------+-----+--------+
| PID  |   NAME   |    HOST   |  PORT |   STATE   |    SENT   |  WRITTTEN |  FLUSHED  |  REPLAYED | PRI |  MODE  |
+------+----------+-----------+-------+-----------+-----------+-----------+-----------+-----------+-----+--------+
|      |          |           |       | local     | 0/5F30398 | 0/5F300B0 |           |           |     | master |
| 3323 | replica1 | 127.0.0.1 | 55580 | streaming | 0/5F300B0 | 0/5F300B0 | 0/5F300B0 | 0/5F2FE48 |   0 | async  |
| 3367 | replica2 | 127.0.0.1 | 55589 | streaming | 0/5F300B0 | 0/5F300B0 | 0/5F2FE48 | 0/5F2FE48 |   0 | async  |
+------+----------+-----------+-------+-----------+-----------+-----------+-----------+-----------+-----+--------+

^C[2015-03-28 21:45:25] INFO: Terminated.
$