postgres-toolkit
A collection of scripts and utilities to manage PostgreSQL servers.
Allows DBA to perform complicated tasks with single commands.
Focusing on frequent tasks for PostgreSQL DBA to improve their productivity and quality of operations.
Distributed under the open source license (GPLv2).
Supported OS
For a list of Operating System supported.
Red Hat Enterprise Linux 6 / CentOS 6
Red Hat Enterprise Linux 7 / CentOS 7
Ubuntu 14.04 LTS
Make sure you have Python2.6 or Python2.7 is installed.
PostgreSQL Version
For a list of PostgreSQL supported.
PostgreSQL 9.0
PostgreSQL 9.1
PostgreSQL 9.2
PostgreSQL 9.3
PostgreSQL 9.4
OS:Red Hat Enterprise Linux Server release 6.6 (Santiago)
Monitor PG9.4.5:
host:Node1:192.168.0.113:PG 9.4.5:role:master
host:Node2:192.168.0.114:PG 9.4.5:role:standby
Replication mode:synchronous
Use following command, you can install the toolkit via the Internet
install the toolkit via the Internet.
curl -L http://dl.uptimeforce.com/postgres-toolkit/install.sh | sh
or
wget
http://dl.uptimeforce.com/postgres-toolkit/install.sh
sh install.sh
When the installs are done, copying related files under /opt/uptime/postgres-toolkit-<VERSION>.
following install on the master node
[[email protected] soft_bak]# curl -L http://dl.uptimeforce.com/postgres-toolkit/install.sh | sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
105 630 105 630 0 0 554 0 0:00:01 0:00:01 --:--:-- 9264
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 276k 100 276k 0 0 292k 0 --:--:-- --:--:-- --:--:-- 318k
opt/uptime/postgres-toolkit-0.2.2/
opt/uptime/postgres-toolkit-0.2.2/bin/
opt/uptime/postgres-toolkit-0.2.2/bin/pt-config
opt/uptime/postgres-toolkit-0.2.2/bin/pt-snap-statements
opt/uptime/postgres-toolkit-0.2.2/bin/pt-proc-stat
opt/uptime/postgres-toolkit-0.2.2/bin/pt-session-profiler
opt/uptime/postgres-toolkit-0.2.2/bin/pt-table-usage
opt/uptime/postgres-toolkit-0.2.2/bin/pt-tablespace-usage
opt/uptime/postgres-toolkit-0.2.2/bin/pt-set-tablespace
opt/uptime/postgres-toolkit-0.2.2/bin/pt-replication-stat
opt/uptime/postgres-toolkit-0.2.2/bin/pt-stat-snapshot
opt/uptime/postgres-toolkit-0.2.2/bin/verifychecksum.bin
opt/uptime/postgres-toolkit-0.2.2/bin/pt-kill
opt/uptime/postgres-toolkit-0.2.2/bin/pt-xact-stat
opt/uptime/postgres-toolkit-0.2.2/bin/pt-verify-checksum
opt/uptime/postgres-toolkit-0.2.2/bin/pt-index-usage
opt/uptime/postgres-toolkit-0.2.2/share/
opt/uptime/postgres-toolkit-0.2.2/share/pgperf_snapshot_install92.sql
opt/uptime/postgres-toolkit-0.2.2/share/pgperf_snapshot_install91.sql
opt/uptime/postgres-toolkit-0.2.2/share/pgperf_snapshot_install94.sql
opt/uptime/postgres-toolkit-0.2.2/share/pgperf_snapshot_install90.sql
opt/uptime/postgres-toolkit-0.2.2/share/pgperf_snapshot_install93.sql
opt/uptime/postgres-toolkit-0.2.2/docs/
opt/uptime/postgres-toolkit-0.2.2/docs/ja/
opt/uptime/postgres-toolkit-0.2.2/docs/ja/.buildinfo
opt/uptime/postgres-toolkit-0.2.2/docs/ja/index.html
opt/uptime/postgres-toolkit-0.2.2/docs/ja/releasenote.html
opt/uptime/postgres-toolkit-0.2.2/docs/ja/pt-index-usage.html
opt/uptime/postgres-toolkit-0.2.2/docs/ja/install.html
opt/uptime/postgres-toolkit-0.2.2/docs/ja/pt-xact-stat.html
opt/uptime/postgres-toolkit-0.2.2/docs/ja/pt-set-tablespace.html
opt/uptime/postgres-toolkit-0.2.2/docs/ja/searchindex.js
opt/uptime/postgres-toolkit-0.2.2/docs/ja/pt-verify-checksum.html
opt/uptime/postgres-toolkit-0.2.2/docs/ja/pt-proc-stat.html
opt/uptime/postgres-toolkit-0.2.2/docs/ja/_static/
opt/uptime/postgres-toolkit-0.2.2/docs/ja/_static/minus.png
opt/uptime/postgres-toolkit-0.2.2/docs/ja/_static/down-pressed.png
opt/uptime/postgres-toolkit-0.2.2/docs/ja/_static/pygments.css
opt/uptime/postgres-toolkit-0.2.2/docs/ja/_static/file.png
opt/uptime/postgres-toolkit-0.2.2/docs/ja/_static/up-pressed.png
opt/uptime/postgres-toolkit-0.2.2/docs/ja/_static/basic.css
opt/uptime/postgres-toolkit-0.2.2/docs/ja/_static/doctools.js
opt/uptime/postgres-toolkit-0.2.2/docs/ja/_static/ajax-loader.gif
opt/uptime/postgres-toolkit-0.2.2/docs/ja/_static/searchtools.js
opt/uptime/postgres-toolkit-0.2.2/docs/ja/_static/default.css
opt/uptime/postgres-toolkit-0.2.2/docs/ja/_static/comment.png
opt/uptime/postgres-toolkit-0.2.2/docs/ja/_static/comment-close.png
opt/uptime/postgres-toolkit-0.2.2/docs/ja/_static/plus.png
opt/uptime/postgres-toolkit-0.2.2/docs/ja/_static/sidebar.js
opt/uptime/postgres-toolkit-0.2.2/docs/ja/_static/comment-bright.png
opt/uptime/postgres-toolkit-0.2.2/docs/ja/_static/jquery.js
opt/uptime/postgres-toolkit-0.2.2/docs/ja/_static/underscore.js
opt/uptime/postgres-toolkit-0.2.2/docs/ja/_static/down.png
opt/uptime/postgres-toolkit-0.2.2/docs/ja/_static/up.png
opt/uptime/postgres-toolkit-0.2.2/docs/ja/_static/websupport.js
opt/uptime/postgres-toolkit-0.2.2/docs/ja/pgperf_functions.html
opt/uptime/postgres-toolkit-0.2.2/docs/ja/pt-replication-stat.html
opt/uptime/postgres-toolkit-0.2.2/docs/ja/pt-snap-statements.html
opt/uptime/postgres-toolkit-0.2.2/docs/ja/pt-kill.html
opt/uptime/postgres-toolkit-0.2.2/docs/ja/pt-table-usage.html
opt/uptime/postgres-toolkit-0.2.2/docs/ja/search.html
opt/uptime/postgres-toolkit-0.2.2/docs/ja/pgperf_overview.html
opt/uptime/postgres-toolkit-0.2.2/docs/ja/pgperf_tables.html
opt/uptime/postgres-toolkit-0.2.2/docs/ja/pt-session-profiler.html
opt/uptime/postgres-toolkit-0.2.2/docs/ja/pt-tablespace-usage.html
opt/uptime/postgres-toolkit-0.2.2/docs/ja/pgperf_intro.html
opt/uptime/postgres-toolkit-0.2.2/docs/ja/pt-stat-snapshot.html
opt/uptime/postgres-toolkit-0.2.2/docs/ja/genindex.html
opt/uptime/postgres-toolkit-0.2.2/docs/ja/pt-config.html
opt/uptime/postgres-toolkit-0.2.2/docs/ja/objects.inv
opt/uptime/postgres-toolkit-0.2.2/docs/en/
opt/uptime/postgres-toolkit-0.2.2/docs/en/.buildinfo
opt/uptime/postgres-toolkit-0.2.2/docs/en/index.html
opt/uptime/postgres-toolkit-0.2.2/docs/en/releasenote.html
opt/uptime/postgres-toolkit-0.2.2/docs/en/pt-index-usage.html
opt/uptime/postgres-toolkit-0.2.2/docs/en/install.html
opt/uptime/postgres-toolkit-0.2.2/docs/en/pt-xact-stat.html
opt/uptime/postgres-toolkit-0.2.2/docs/en/pt-set-tablespace.html
opt/uptime/postgres-toolkit-0.2.2/docs/en/searchindex.js
opt/uptime/postgres-toolkit-0.2.2/docs/en/pt-verify-checksum.html
opt/uptime/postgres-toolkit-0.2.2/docs/en/pt-proc-stat.html
opt/uptime/postgres-toolkit-0.2.2/docs/en/_static/
opt/uptime/postgres-toolkit-0.2.2/docs/en/_static/minus.png
opt/uptime/postgres-toolkit-0.2.2/docs/en/_static/down-pressed.png
opt/uptime/postgres-toolkit-0.2.2/docs/en/_static/pygments.css
opt/uptime/postgres-toolkit-0.2.2/docs/en/_static/file.png
opt/uptime/postgres-toolkit-0.2.2/docs/en/_static/up-pressed.png
opt/uptime/postgres-toolkit-0.2.2/docs/en/_static/basic.css
opt/uptime/postgres-toolkit-0.2.2/docs/en/_static/doctools.js
opt/uptime/postgres-toolkit-0.2.2/docs/en/_static/ajax-loader.gif
opt/uptime/postgres-toolkit-0.2.2/docs/en/_static/searchtools.js
opt/uptime/postgres-toolkit-0.2.2/docs/en/_static/default.css
opt/uptime/postgres-toolkit-0.2.2/docs/en/_static/comment.png
opt/uptime/postgres-toolkit-0.2.2/docs/en/_static/comment-close.png
opt/uptime/postgres-toolkit-0.2.2/docs/en/_static/plus.png
opt/uptime/postgres-toolkit-0.2.2/docs/en/_static/sidebar.js
opt/uptime/postgres-toolkit-0.2.2/docs/en/_static/comment-bright.png
opt/uptime/postgres-toolkit-0.2.2/docs/en/_static/jquery.js
opt/uptime/postgres-toolkit-0.2.2/docs/en/_static/underscore.js
opt/uptime/postgres-toolkit-0.2.2/docs/en/_static/down.png
opt/uptime/postgres-toolkit-0.2.2/docs/en/_static/up.png
opt/uptime/postgres-toolkit-0.2.2/docs/en/_static/websupport.js
opt/uptime/postgres-toolkit-0.2.2/docs/en/pgperf_functions.html
opt/uptime/postgres-toolkit-0.2.2/docs/en/pt-replication-stat.html
opt/uptime/postgres-toolkit-0.2.2/docs/en/pt-snap-statements.html
opt/uptime/postgres-toolkit-0.2.2/docs/en/pt-kill.html
opt/uptime/postgres-toolkit-0.2.2/docs/en/pt-table-usage.html
opt/uptime/postgres-toolkit-0.2.2/docs/en/search.html
opt/uptime/postgres-toolkit-0.2.2/docs/en/pgperf_overview.html
opt/uptime/postgres-toolkit-0.2.2/docs/en/pgperf_tables.html
opt/uptime/postgres-toolkit-0.2.2/docs/en/pt-session-profiler.html
opt/uptime/postgres-toolkit-0.2.2/docs/en/pt-tablespace-usage.html
opt/uptime/postgres-toolkit-0.2.2/docs/en/pgperf_intro.html
opt/uptime/postgres-toolkit-0.2.2/docs/en/pt-stat-snapshot.html
opt/uptime/postgres-toolkit-0.2.2/docs/en/genindex.html
opt/uptime/postgres-toolkit-0.2.2/docs/en/pt-config.html
opt/uptime/postgres-toolkit-0.2.2/docs/en/objects.inv
opt/uptime/postgres-toolkit-0.2.2/src/
opt/uptime/postgres-toolkit-0.2.2/src/verifychecksum.c
opt/uptime/postgres-toolkit-0.2.2/lib/
opt/uptime/postgres-toolkit-0.2.2/lib/PsqlWrapper.py
opt/uptime/postgres-toolkit-0.2.2/lib/log.pyc
opt/uptime/postgres-toolkit-0.2.2/lib/PsqlWrapper.pyc
opt/uptime/postgres-toolkit-0.2.2/lib/TcpdumpWrapper.pyc
opt/uptime/postgres-toolkit-0.2.2/lib/DirectoryTree.py
opt/uptime/postgres-toolkit-0.2.2/lib/log.py
opt/uptime/postgres-toolkit-0.2.2/lib/DirectoryTree.pyc
opt/uptime/postgres-toolkit-0.2.2/lib/TcpdumpWrapper.py
opt/uptime/postgres-toolkit-0.2.2/LICENSE
Succeeded to install Postgres Toolkit!
Subscribe now to stay informed of the latest Postgres Toolkit news.
- http://postgres-toolkit.launchrock.com/
The official manual is available online.
- https://postgres-toolkit.readthedocs.org/
- https://postgres-toolkit-ja.readthedocs.org/
Thanks for choosing Postgres Toolkit! Enjoy!
When the installs are done, copying related files under /opt/uptime/postgres-toolkit-<VERSION>.
After installing
[[email protected] uptime]$ cd postgres-toolkit-0.2.2/
[[email protected] postgres-toolkit-0.2.2]$ ls
bin docs lib LICENSE share src
[[email protected] data]# cd /opt/uptime/postgres-toolkit-0.2.2/bin
[[email protected] bin]# ls
pt-config pt-kill pt-replication-stat pt-set-tablespace pt-stat-snapshot pt-table-usage pt-xact-stat
pt-index-usage pt-proc-stat pt-session-profiler pt-snap-statements pt-tablespace-usage pt-verify-checksum verifychecksum.bin
[[email protected] bin]$ ./pt-config --help
Usage: pt-config [option...] [command] [param [value]]
Commands:
get [PARAM] Get a current value of a parameter.
set [PARAM] [VALUE] Set a new value for a parameter.
disable [PARAM] Comment a parameter out.
Options:
-D, --pgdata=PGDATA Specify a PostgreSQL database cluster.
--apply Apply change(s).
--help Print this help.
[[email protected] bin]$ ./pt-config -D /usr/local/pg945/data/ get shared_buffers
[2016-01-19 09:46:42] INFO: Reading: /usr/local/pg945/data//postgresql.conf
128MB
[[email protected] bin]$ ./pt-config -D /usr/local/pg945/data/ set shared_buffers 512MB
[2016-01-19 09:47:18] INFO: Reading: /usr/local/pg945/data//postgresql.conf
[2016-01-19 09:47:18] INFO: Dry-run mode:
[2016-01-19 09:47:18] INFO: Old: shared_buffers = 128MB # min 128kB
[2016-01-19 09:47:18] INFO: New: shared_buffers = 512MB # min 128kB
[[email protected] bin]$ ./pt-config -D /usr/local/pg945/data/ --apply disable shared_buffers
[2016-01-19 09:48:44] INFO: Reading: /usr/local/pg945/data//postgresql.conf
[2016-01-19 09:48:44] INFO: Applying:
[2016-01-19 09:48:44] INFO: Old: shared_buffers = 128MB # min 128kB
[2016-01-19 09:48:44] INFO: New: #shared_buffers = 128MB # min 128kB
[2016-01-19 09:48:44] INFO: Updated: /usr/local/pg945/data//postgresql.conf
[[email protected] bin]$ ./pt-index-usage --help
Usage: pt-index-usage [option...]
Options:
-h, --host=HOSTNAME Host name of the postgres server
-p, --port=PORT Port number of the postgres server
-U, --username=USERNAME User name to connect
-d, --dbname=DBNAME Database name to connect
-o, --owner=STRING Owner name
-n, --schema=STRING Schema name
-t, --table=STRING Table name
-i, --index=STRING Index name
--help Print this help.
[[email protected] bin]$ ./pt-index-usage /usr/local/pg945/bin/psql -h localhost -p 5432 -U postgres -n public -d postgres
+-------+----------+--------+------------------+-----------------------+-------+--------+--------+--------+--------+--------+--------+------------+
| OID | OWNER | SCHEMA | TABLE | INDEX | BLKS | SCAN | T_READ | T_FTCH | B_READ | B_HIT | STATUS | TABLESPACE |
+-------+----------+--------+------------------+-----------------------+-------+--------+--------+--------+--------+--------+--------+------------+
| 16414 | postgres | public | pgbench_accounts | pgbench_accounts_pkey | 27422 | 149972 | 210520 | 149972 | 74399 | 557402 | | pg_default |
| 16410 | postgres | public | pgbench_branches | pgbench_branches_pkey | 2 | 0 | 0 | 0 | 38 | 112 | | pg_default |
| 16412 | postgres | public | pgbench_tellers | pgbench_tellers_pkey | 7 | 74986 | 75292 | 74986 | 10 | 151488 | | pg_default |
+-------+----------+--------+------------------+-----------------------+-------+--------+--------+--------+--------+--------+--------+------------+
[[email protected] bin]$ ./pt-replication-stat --help
Usage: pt-replication-stat [option...] [delay [count]]
Options:
-h, --host=HOSTNAME Host name of the postgres server
-p, --port=PORT Port number of the postgres server
-U, --username=USERNAME User name to connect
-d, --dbname=DBNAME Database name to connect
--help Print this help.
[[email protected] bin]$ ./pt-replication-stat -h localhost -p 5432 -U postgres 5 2
Tue Jan 19 09:53:58 CST 2016
+------+-------+---------------+-------+-----------+------------+------------+------------+------------+-----+--------+
| PID | NAME | HOST | PORT | STATE | SENT | WRITTTEN | FLUSHED | REPLAYED | PRI | MODE |
+------+-------+---------------+-------+-----------+------------+------------+------------+------------+-----+--------+
| | | | | local | 0/DA000350 | 0/DA000350 | | | | master |
| 1353 | node2 | 192.168.0.114 | 41205 | streaming | 0/DA000350 | 0/DA000350 | 0/DA000350 | 0/DA000350 | 1 | sync |
+------+-------+---------------+-------+-----------+------------+------------+------------+------------+-----+--------+
Tue Jan 19 09:54:03 CST 2016
+------+-------+---------------+-------+-----------+------------+------------+------------+------------+-----+--------+
| PID | NAME | HOST | PORT | STATE | SENT | WRITTTEN | FLUSHED | REPLAYED | PRI | MODE |
+------+-------+---------------+-------+-----------+------------+------------+------------+------------+-----+--------+
| | | | | local | 0/DA000350 | 0/DA000350 | | | | master |
| 1353 | node2 | 192.168.0.114 | 41205 | streaming | 0/DA000350 | 0/DA000350 | 0/DA000350 | 0/DA000350 | 1 | sync |
+------+-------+---------------+-------+-----------+------------+------------+------------+------------+-----+--------+
[[email protected] bin]$ ./pt-proc-stat -D /usr/local/pg945/data/ 10 5
Tue Jan 19 09:57:49 CST 2016
PROCESS NAME[ PID] STAT USR SYS VSZ RSS READ WRITE READ2 WRITE2
postgres[ 1344] S 0 1 256 12 2200 304 6004 -40
logger[ 1345] S 0 0 113 0 0 4 0 -4
checkpointer[ 1347] S 0 0 256 2 0 60 0 -12
writer[ 1348] S 1 2 256 2 0 0 0 0
wal writer[ 1349] S 0 1 256 5 0 32 0 0
autovacuum launcher[ 1350] S 0 0 256 1 0 0 98 0
archiver[ 1351] S 0 0 115 0 0 0 0 0
stats collector[ 1352] S 0 2 115 1 0 876 19 -391
DA000350[ 1353] S 0 1 257 2 0 0 16393 0
Tue Jan 19 09:57:59 CST 2016
PROCESS NAME[ PID] STAT USR SYS VSZ RSS READ WRITE READ2 WRITE2
postgres[ 1344] S 0 0 256 12 0 0 0 0
logger[ 1345] S 0 0 113 0 0 0 0 0
checkpointer[ 1347] S 0 0 256 2 0 0 0 0
writer[ 1348] S 0 0 256 2 0 0 0 0
wal writer[ 1349] S 0 0 256 5 0 0 0 0
autovacuum launcher[ 1350] S 0 0 256 1 0 0 0 0
archiver[ 1351] S 0 0 115 0 0 0 0 0
stats collector[ 1352] S 0 0 115 1 0 0 0 0
DA000350[ 1353] S 0 0 257 2 0 0 0 0
Tue Jan 19 09:58:09 CST 2016
PROCESS NAME[ PID] STAT USR SYS VSZ RSS READ WRITE READ2 WRITE2
postgres[ 1344] S 0 0 256 12 0 0 143 0
logger[ 1345] S 0 0 113 0 0 0 0 0
checkpointer[ 1347] S 0 0 256 2 0 0 0 0
writer[ 1348] S 0 0 256 2 0 0 0 0
wal writer[ 1349] S 0 0 256 5 0 0 0 0
autovacuum launcher[ 1350] S 0 0 256 1 0 0 2 0
archiver[ 1351] S 0 0 115 0 0 0 0 0
stats collector[ 1352] S 0 0 115 1 0 24 0 -10
DA000350[ 1353] S 0 0 257 2 0 0 0 0
Tue Jan 19 09:58:19 CST 2016
PROCESS NAME[ PID] STAT USR SYS VSZ RSS READ WRITE READ2 WRITE2
postgres[ 1344] S 0 0 256 12 0 0 0 0
logger[ 1345] S 0 0 113 0 0 0 0 0
checkpointer[ 1347] S 0 0 256 2 0 0 0 0
writer[ 1348] S 0 0 256 2 0 0 0 0
wal writer[ 1349] S 0 0 256 5 0 0 0 0
autovacuum launcher[ 1350] S 0 0 256 1 0 0 0 0
archiver[ 1351] S 0 0 115 0 0 0 0 0
stats collector[ 1352] S 0 0 115 1 0 0 0 0
DA000350[ 1353] S 0 0 257 2 0 0 0 0
Tue Jan 19 09:58:29 CST 2016
PROCESS NAME[ PID] STAT USR SYS VSZ RSS READ WRITE READ2 WRITE2
postgres[ 1344] S 0 0 256 12 0 0 0 0
logger[ 1345] S 0 0 113 0 0 0 0 0
checkpointer[ 1347] S 0 0 256 2 0 0 0 0
writer[ 1348] S 0 0 256 2 0 0 0 0
wal writer[ 1349] S 0 0 256 5 0 0 0 0
autovacuum launcher[ 1350] S 0 0 256 1 0 0 0 0
archiver[ 1351] S 0 0 115 0 0 0 0 0
stats collector[ 1352] S 0 0 115 1 0 0 0 0
DA000350[ 1353] S 0 0 257 2 0 0 0 0
[[email protected] bin]$ ./pt-table-usage -d postgres
+-------+----------+--------+------------------+--------+-------+----------+----------+-------+-------+--------+--------+---------------------+---------------------+------------+
| OID | OWNER | SCHEMA | TABLE | BLKS | SCAN | T_READ | T_INS | T_UPD | T_DEL | B_READ | B_HIT | VACUUMED | ANALYZED | TABLESPACE |
+-------+----------+--------+------------------+--------+-------+----------+----------+-------+-------+--------+--------+---------------------+---------------------+------------+
| 16403 | postgres | public | pgbench_accounts | 164936 | 1 | 10000000 | 10000000 | 74986 | 0 | 597553 | 557725 | 2016-01-18 15:27:08 | 2016-01-18 15:27:08 | pg_default |
| 16406 | postgres | public | pgbench_branches | 2 | 79234 | 7498700 | 100 | 74984 | 0 | 127 | 237473 | 2016-01-18 16:03:26 | 2016-01-18 16:03:26 | pg_default |
| 16397 | postgres | public | pgbench_history | 374 | 0 | 0 | 74983 | 0 | 0 | 3732 | 76579 | 2016-01-18 15:27:10 | 2016-01-18 16:03:23 | pg_default |
| 16400 | postgres | public | pgbench_tellers | 16 | 1 | 1000 | 1000 | 74986 | 0 | 129 | 155327 | 2016-01-18 16:03:25 | 2016-01-18 16:03:25 | pg_default |
+-------+----------+--------+------------------+--------+-------+----------+----------+-------+-------+--------+--------+---------------------+---------------------+------------+
[[email protected] bin]$ ./pt-tablespace-usage -d postgres
+------------+-----------+-----------+
| TABLESPACE | DBNAME | SIZE (MB) |
+------------+-----------+-----------+
| pg_default | postgres | 1512 |
| pg_default | template1 | 6 |
| pg_global | | 1 |
+------------+-----------+-----------+
pt-snap-statements:requirement
postgresql.conf
shared_preload_libraries = ‘pg_stat_statements‘
pg_stat_statements.max = 10000
pg_stat_statements.track = all
track_io_timing = on
[[email protected] bin]$ ./pt-snap-statements -d postgres 5
+----------+----------+----------+--------------------------------+-------+--------+------+-------+--------+--------+--------+---------+--------+
| USER | DBNAME | QUERYID | QUERY | CALLS | T_TIME | ROWS | B_HIT | B_READ | B_DIRT | B_WRTN | R_TIME | W_TIME |
+----------+----------+----------+--------------------------------+-------+--------+------+-------+--------+--------+--------+---------+--------+
| postgres | postgres | d0679a75 | UPDATE pgbench_accounts SET ab | 246 | 19354 | 246 | 1604 | 504 | 392 | 1 | 19324.8 | 0.0 |
| postgres | postgres | 67ecc2d2 | UPDATE pgbench_branches SET bb | 246 | 1202 | 246 | 834 | 3 | 2 | 0 | 0.0 | 0.0 |
| postgres | postgres | d348561c | UPDATE pgbench_tellers SET tba | 246 | 5 | 246 | 985 | 0 | 0 | 0 | 0.0 | 0.0 |
| postgres | postgres | fa9b0052 | SELECT abalance FROM pgbench_a | 246 | 4 | 246 | 1131 | 0 | 0 | 0 | 0.0 | 0.0 |
| postgres | postgres | db71f8b2 | INSERT INTO pgbench_history (t | 246 | 3 | 246 | 246 | 0 | 0 | 0 | 0.0 | 0.0 |
| postgres | postgres | d4e6bf94 | BEGIN; | 250 | 0 | 0 | 0 | 0 | 0 | 0 | 0.0 | 0.0 |
| postgres | postgres | a81672e | END; | 246 | 0 | 0 | 0 | 0 | 0 | 0 | 0.0 | 0.0 |
+----------+----------+----------+--------------------------------+-------+--------+------+-------+--------+--------+--------+---------+--------+
pt-stat-snapshot
[[email protected] bin]$ ./pt-stat-snapshot --help
Usage: pt-stat-snapshot [option...] install
pt-stat-snapshot [option...] create [level]
pt-stat-snapshot [option...] list
pt-stat-snapshot [option...] delete [sid]
pt-stat-snapshot [option...] export [file]
pt-stat-snapshot [option...] import [file]
pt-stat-snapshot [option...] uninstall
Options:
-h, --host=HOSTNAME Host name of the postgres server
-p, --port=PORT Port number of the postgres server
-U, --username=USERNAME User name to connect
-d, --dbname=DBNAME Database name to connect
--help Print this help.
[[email protected] bin]$ ./pt-stat-snapshot -h localhost -U postgres -d postgres install
[2016-01-19 10:29:41] INFO: Succeeded to install pgperf snapshot.
[[email protected] bin]$ ./pt-stat-snapshot -h localhost -U postgres -d postgres create 4
[2016-01-19 10:35:56] INFO: Succeeded to take a snapshot.
[[email protected] bin]$ ./pt-stat-snapshot -h localhost -U postgres -d postgres list
+-----+---------------------+-------+
| SID | TIMESTAMP | LEVEL |
+-----+---------------------+-------+
| 0 | 2016-01-19 10:32:00 | 4 |
+-----+---------------------+-------+
[[email protected] bin]$ ./pt-stat-snapshot -h localhost -U postgres -d postgres uninstall
[2016-01-19 10:38:03] INFO: Succeeded to uninstall pgperf snapshot.
pt-xact-stat
[[email protected] bin]$ ./pt-xact-stat --host-list 192.168.0.113:5432,192.168.0.114:5432 -d postgres 5 2
Tue Jan 19 10:44:01 CST 2016
+---------------+------+----------+------+---------+-----------+---------+---------+
| HOST | PORT | DBNAME | CONN | COMMITS | ROLLBACKS | B_READ | B_HIT |
+---------------+------+----------+------+---------+-----------+---------+---------+
| 192.168.0.113 | 5432 | postgres | 11 | 102180 | 11 | 1091476 | 2571606 |
| 192.168.0.114 | 5432 | postgres | 1 | 5 | 0 | 81 | 1158 |
+---------------+------+----------+------+---------+-----------+---------+---------+
Tue Jan 19 10:44:06 CST 2016
+---------------+------+----------+------+---------+-----------+---------+---------+
| HOST | PORT | DBNAME | CONN | COMMITS | ROLLBACKS | B_READ | B_HIT |
+---------------+------+----------+------+---------+-----------+---------+---------+
| 192.168.0.113 | 5432 | postgres | 11 | 102955 | 11 | 1093119 | 2586571 |
| 192.168.0.114 | 5432 | postgres | 1 | 7 | 0 | 81 | 1345 |
+---------------+------+----------+------+---------+-----------+---------+---------+
sourcecode :https://github.com/uptimejp/postgres-toolkit
document :http://postgres-toolkit.readthedocs.org/