sql >> Database >  >> RDS >> PostgreSQL

De pt-pg-summary Percona Toolkit voor PostgreSQL gebruiken

De Percona Toolkit is een krachtig, gratis en open-source product ontwikkeld door Percona. Het is een verzameling opdrachtregelprogramma's waarmee u verschillende MySQL-, MongoDB-, PostgreSQL- en systeemtaken kunt uitvoeren die over het algemeen te complex zijn om handmatig uit te voeren. Het ondersteunt Percona Server voor MySQL, MySQL, MariaDB, PostgreSQL, Percona Server voor MongoDB en MongoDB.

In deze blog laten we u zien hoe u Percona Toolkit installeert en hoe u een nieuwe tool gebruikt die onlangs is toegevoegd aan het Percona Toolkit-pakket, genaamd pt-pg-summary.

Percona Toolkits installeren

Laten we eerst kijken hoe u Percona Toolkits installeert om pt-pg-summary te kunnen gebruiken. In dit geval gebruiken we CentOS 7 en PostgreSQL 12.

Installeer de Percona-repository:

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

Als de repository is geïnstalleerd, zou u het pakket percona-toolkit moeten kunnen installeren:

$ yum install percona-toolkit

Je hoeft het nu alleen nog maar uit te voeren met de juiste parameters.

$ 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 gebruiken

Wanneer u deze tool uitvoert, ziet u een uitvoer gegroepeerd in de volgende categorieën:

  • Databasepoort en Data_Directory
  • Lijst met tabelruimten
  • Slaaf en de vertraging met Master
  • Clusterinformatie
  • Databases
  • Index cache hit ratio's
  • Table Cache Hit Ratio's
  • Lijst met Wait_events voor het hele cluster - alle databases
  • Lijst van gebruikers en client_addr of client_hostname verbonden met --all-databases
  • Tellers verschil na 10 seconden
  • Tabeltoegang per database
  • Instellingsinstellingen
  • Opstartopdracht voor processen

Dus laten we het op een PostgreSQL-instantie uitvoeren om een ​​voorbeeld te zien:

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

De eerste actie is het verzamelen van de informatie van uw PostgreSQL-server:

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

...

Dan zal het alle verzamelde informatie op deze manier tonen:

##### --- 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

Nu je al deze informatie hebt, kun je deze voor verschillende doeleinden gebruiken, zoals probleemoplossing, prestatiebewaking of zelfs om een ​​overzicht te krijgen van je huidige configuratie. Je kunt dit ook aanvullen met een andere Percona Toolkit zoals "pt-summary" om meer informatie te krijgen over het systeem waarop het draait.

Conclusie

Percona Toolkit is een krachtig hulpmiddel om u te helpen met databasebeheertaken. Met pt-pg-summary heb je nu informatie over je PostgreSQL-instantie en kun je deze integreren in een monitoringsysteem of deze tool zelfs combineren met een andere Percona Toolkit-component om nog meer informatie van je systemen te verzamelen.


  1. Query's met MySQL-parameter

  2. Vuile geheimen van de CASE-expressie

  3. NULL Complexiteiten – Deel 2

  4. Twee rijen samenvoegen tot één terwijl u null-waarden vervangt