PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Използване на pt-pg-summary Percona Toolkit за PostgreSQL

Percona Toolkit е мощен, безплатен продукт с отворен код, разработен от Percona. Това е колекция от инструменти на командния ред, които ви позволяват да изпълнявате различни MySQL, MongoDB, PostgreSQL и системни задачи, които като цяло са твърде сложни за ръчно изпълнение. Той поддържа Percona Server за MySQL, MySQL, MariaDB, PostgreSQL, Percona Server за MongoDB и MongoDB.

В този блог ще ви покажем как да инсталирате Percona Toolkit и как да използвате нов инструмент, добавен наскоро в пакета Percona Toolkit, наречен pt-pg-summary.

Инсталиране на Percona Toolkits

Първо, нека да видим как да инсталирате Percona Toolkits, за да можете да използвате pt-pg-summary. В този случай ще използваме CentOS 7 и PostgreSQL 12.

Инсталирайте хранилището на Percona:

$ yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm

Имайки инсталираното хранилище, трябва да можете да инсталирате пакета percona-toolkit:

$ yum install percona-toolkit

Сега просто трябва да го стартирате, като използвате правилните параметри.

$ pt-pg-summary --help

usage: pt-pg-summary [<flags>]

Percona Toolkit - PostgreSQL Summary

Flags:

      --help                     Show context-sensitive help (also try --help-long and --help-man).

      --version                  Show application version.

      --databases=DATABASES ...  Summarize this comma-separated list of databases. All if not specified

  -h, --host=HOST                Host to connect to

  -W, --password=PASSWORD        Password to use when connecting

  -p, --port=PORT                Port number to use for connection

      --sleep=10                 Seconds to sleep when gathering status counters

  -U, --username=USERNAME        User for login if not current user

      --disable-ssl              Diable SSL for the connection

      --verbose                  Show verbose log

      --debug                    Show debug information in the logs

Изпълнение на Percona Toolkits

Когато стартирате този инструмент, ще видите изход, групиран по следните категории:

  • Порт на базата данни и директория_данни
  • Списък с пространства за таблици
  • Slave и изоставането с Master
  • Информация за клъстера
  • Бази данни
  • Коефициенти на попадения в кеша на индекса
  • Коефициенти на посещения в кеша на таблици
  • Списък с Wait_events за целия клъстер – всички бази данни
  • Списък с потребители и client_addr или client_hostname, свързани с --all-databases
  • Брочите се различават след 10 секунди
  • Достъп до таблица за база данни
  • Настройки на екземпляра
  • Команда за стартиране на процеси

И така, нека го стартираме на PostgreSQL екземпляр, за да видим пример:

$ pt-pg-summary -hlocalhost -p5432 -Uadmindb

Първото действие е да съберете информацията от вашия PostgreSQL сървър:

INFO[0000] Connecting to the database server using: host=localhost port=5432 user=admindb sslmode=disable dbname=postgres

INFO[0000] Connection OK

INFO[0000] Detected PostgreSQL version: 12.0.5

INFO[0000] Getting global information

INFO[0000] Collecting global counters (1st pass)

INFO[0000] Collecting Cluster information

INFO[0000] Waiting 10 seconds to read  counters

INFO[0000] Collecting Connected Clients information

INFO[0000] Collecting Database Wait Events information

INFO[0000] Collecting Global Wait Events information

...

След това ще покаже цялата събрана информация по следния начин:

##### --- Database Port and Data_Directory --- ####

+----------------------+----------------------------------------------------+

|         Name         |                      Setting                       |

+----------------------+----------------------------------------------------+

| data_directory       | /var/lib/pgsql/12/data                             |

+----------------------+----------------------------------------------------+

##### --- List of Tablespaces ---- ######

+----------------------+----------------------+-----------------------------+

|         Name         |         Owner        |               Location      |

+----------------------+----------------------+-----------------------------+

| pg_default           | postgres             |                             |

| pg_global            | postgres             |                             |

+----------------------+----------------------+-----------------------------+

##### --- Slave and the lag with Master --- ####

+----------------------+----------------------+------------------+----------+

|  Application Name    |    Client Address    |      State       |   Lag    |

+----------------------+----------------------+------------------+----------+

| pgsql_14_node_0      | 10.10.10.127         | streaming        |     0.00 |

+----------------------+----------------------+------------------+----------+

##### --- Cluster Information --- ####

+---------------------------------------------------------------------------+

 Usename        : admindb

 Time           : 2020-11-12 17:27:18.200552 +0000 UTC

 Client Address : ::1

 Client Hostname:

 Version        : PostgreSQL 12.5 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8....

 Started        : 2020-11-12 17:07:07.185407 +0000 UTC

 Is Slave       : false

+---------------------------------------------------------------------------+

##### --- Databases --- ####

+----------------------+------------+

|       Dat Name       |    Size    |

+----------------------+------------+

| postgres             |    8193 kB |

| template1            |    8193 kB |

| template0            |    8049 kB |

+----------------------+------------+

##### --- Index Cache Hit Ratios --- ####

Database: postgres

+----------------------+------------+

|      Index Name      |    Ratio   |

+----------------------+------------+

| index hit rate       |      0.00  |

+----------------------+------------+

##### --- Table Cache Hit Ratios --- ####

Database: postgres

+----------------------+------------+

|      Index Name      |    Ratio   |

+----------------------+------------+

| cache hit rate       |       0.00 |

+----------------------+------------+

##### --- List of Wait_events for the entire Cluster - all-databases --- ####

+----------------------+----------------------+---------+

|   Wait Event Type    |        Event         |  Count  |

+----------------------+----------------------+---------+

| Activity             | BgWriterHibernate    |     1   |

| Activity             | WalWriterMain        |     1   |

| Activity             | LogicalLauncherMain  |     1   |

| Activity             | WalSenderMain        |     1   |

| Client               | ClientRead           |     2   |

| Activity             | CheckpointerMain     |     1   |

| Activity             | AutoVacuumMain       |     1   |

+----------------------+----------------------+---------+

##### --- List of users and client_addr or client_hostname connected to --all-databases --- ####

+----------------------+------------+---------+----------------------+--------+

|   Wait Event Type    |        Client        |         State        |  Count |

+----------------------+------------+---------+----------------------+--------+

| admindb              | 10.10.10.121/32      | idle                 |      2 |

| cmon_replication     | 10.10.10.127/32      | active               |      1 |

| admindb              | ::1/128              | active               |      1 |

+----------------------+------------+---------+----------------------+--------+

##### --- Counters diff after 10 seconds --- ####

+----------------------+-------------+------------+--------------+-------------+------------+-------------+------------+-------------+------------+------------+-----------+-----------+-----------+------------+

| Database             | Numbackends | XactCommit | XactRollback | BlksRead    | BlksHit    | TupReturned | TupFetched | TupInserted | TupUpdated | TupDeleted | Conflicts | TempFiles | TempBytes | Deadlocks  |

+----------------------+-------------+------------+--------------+-------------+------------+-------------+------------+-------------+------------+------------+-----------+-----------+-----------+------------+

|                      |       0     |       0    |       0      |       0     |     119    |      77     |      31    |       0     |       0    |       0    |       0   |       0   |       0   |       0    |

| postgres             |       0     |      39    |       0      |       0     |    1541    |    1641     |     816    |       0     |       0    |       0    |       0   |       0   |       0   |       0    |

...

##### --- Table access per database --- ####

Database: postgres

+----------------------------------------------------+------+--------------------------------+---------+

|                       Relname                      | Kind |             Datname            |  Count  |

+----------------------------------------------------+------+--------------------------------+---------+

| pg_database_datname_index                          |   i  |                                |       1 |

| pg_class                                           |   r  | postgres                       |       1 |

| pg_database                                        |   r  |                                |       1 |

...

##### --- Instance settings --- ####

                      Setting                                            Value

allow_system_table_mods                       : off

application_name                              :

archive_cleanup_command                       :

archive_command                               : (disabled)

archive_mode                                  : off

archive_timeout                               : 0

array_nulls                                   : on

authentication_timeout                        : 60

autovacuum                                    : on

autovacuum_analyze_scale_factor               : 0.1

…

##### --- Processes start up command --- ####

PID  :    Command line

  5158 : /usr/pgsql-12/bin/postgres -p 5432

Сега имате цялата тази информация, можете да я използвате за различни цели като отстраняване на неизправности, наблюдение на производителността или дори за преглед на текущата си конфигурация. Можете също да допълните това с друг инструментариум на Percona като „pt-summary“, за да имате повече информация за системата, в която се изпълнява.

Заключение

Percona Toolkit е мощен инструмент, който да ви помогне със задачи за управление на база данни. Сега с pt-pg-summary ще можете да имате информация за вашия екземпляр на PostgreSQL и можете да го интегрирате в система за наблюдение или дори да комбинирате този инструмент с друг компонент на Percona Toolkit, за да събирате още повече информация от вашите системи.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Големи данни с PostgreSQL и Apache Spark

  2. Максимален брой знаци в етикетите (имена на таблици, колони и т.н.)

  3. Shell скрипт за изпълнение на pgsql команди във файлове

  4. Получавате стойностите по подразбиране на колоните на таблицата в Postgres?

  5. Как да изчислим разликата между две времеви марки в PostgreSQL