zoukankan      html  css  js  c++  java
  • postgres-toolkit (A Victorinox for PostgreSQL DBA )

    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)

    Monitored 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

    [root@node1 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

    [postgres@node1 uptime]$ cd postgres-toolkit-0.2.2/
    [postgres@node1 postgres-toolkit-0.2.2]$ ls
    bin docs lib LICENSE share src

    [root@node1 data]# cd /opt/uptime/postgres-toolkit-0.2.2/bin

    [root@node1 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

    [postgres@node1 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.

    [postgres@node1 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

    [postgres@node1 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

    [postgres@node1 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

    [postgres@node1 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.

    [postgres@node1 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 |
    +-------+----------+--------+------------------+-----------------------+-------+--------+--------+--------+--------+--------+--------+------------+

    [postgres@node1 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.

    [postgres@node1 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 |
    +------+-------+---------------+-------+-----------+------------+------------+------------+------------+-----+--------+

    [postgres@node1 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

    [postgres@node1 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 |
    +-------+----------+--------+------------------+--------+-------+----------+----------+-------+-------+--------+--------+---------------------+---------------------+------------+

    [postgres@node1 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

    [postgres@node1 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

    [postgres@node1 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.

    [postgres@node1 bin]$ ./pt-stat-snapshot -h localhost -U postgres -d postgres install
    [2016-01-19 10:29:41] INFO: Succeeded to install pgperf snapshot.

    [postgres@node1 bin]$ ./pt-stat-snapshot -h localhost -U postgres -d postgres create 4
    [2016-01-19 10:35:56] INFO: Succeeded to take a snapshot.

    [postgres@node1 bin]$ ./pt-stat-snapshot -h localhost -U postgres -d postgres list
    +-----+---------------------+-------+
    | SID | TIMESTAMP | LEVEL |
    +-----+---------------------+-------+
    | 0 | 2016-01-19 10:32:00 | 4 |
    +-----+---------------------+-------+

    [postgres@node1 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


    [postgres@node1 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/

  • 相关阅读:
    Flash 终将谢幕:微软将于年底( 2020 年 )停止对 Flash 的支持
    分布式id生成方案总结
    如何设计一个亿级网关(API Gateway)?
    服务之间的调用为啥不直接用 HTTP 而用 RPC?
    Dubbo 总结:关于 Dubbo 的重要知识点
    CAP理论解读
    单点登录(SSO)的设计与实现
    入职微软三个月把老板炒了,七个月自己跑路是一种怎样的体验?
    有关链表的小技巧,我都给你总结好了
    排序算法入门之「选择排序」
  • 原文地址:https://www.cnblogs.com/songyuejie/p/5141493.html
Copyright © 2011-2022 走看看