PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Korzystanie z zestawu narzędzi pt-pg-summary Percona dla PostgreSQL

Percona Toolkit to potężny, darmowy produkt o otwartym kodzie źródłowym opracowany przez firmę Percona. Jest to zbiór narzędzi wiersza poleceń, które umożliwiają wykonywanie różnych zadań MySQL, MongoDB, PostgreSQL i systemowych, które ogólnie są zbyt skomplikowane, aby można je było wykonać ręcznie. Obsługuje Percona Server dla MySQL, MySQL, MariaDB, PostgreSQL, Percona Server dla MongoDB i MongoDB.

W tym blogu pokażemy, jak zainstalować Percona Toolkit i jak korzystać z nowego narzędzia dodanego niedawno w pakiecie Percona Toolkit o nazwie pt-pg-summary.

Instalowanie zestawów narzędzi Percona

Najpierw zobaczmy, jak zainstalować Percona Toolkits, aby móc korzystać z pt-pg-summary. W tym przypadku użyjemy CentOS 7 i PostgreSQL 12.

Zainstaluj repozytorium Percona:

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

Po zainstalowaniu repozytorium powinieneś być w stanie zainstalować pakiet percona-toolkit:

$ yum install percona-toolkit

Teraz wystarczy uruchomić go z poprawnymi parametrami.

$ 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

Uruchamianie zestawów narzędzi Percona

Po uruchomieniu tego narzędzia zobaczysz dane wyjściowe pogrupowane według następujących kategorii:

  • Port bazy danych i Data_Directory
  • Lista przestrzeni tabel
  • Slave i lag z Master
  • Informacje o klastrze
  • Bazy danych
  • Wskaźniki trafień w pamięci podręcznej indeksu
  • Wskaźniki trafień w pamięci podręcznej tabeli
  • Lista Wait_events dla całego Klastra - wszystkie bazy danych
  • Lista użytkowników i client_addr lub client_hostname połączonych z --all-databases
  • Liczniki różnią się po 10 sekundach
  • Dostęp do tabeli na bazę danych
  • Ustawienia instancji
  • Polecenie uruchamiania procesów

Więc uruchommy go na instancji PostgreSQL, aby zobaczyć przykład:

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

Pierwszą akcją jest zebranie informacji z serwera 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

...

Następnie pokaże wszystkie zebrane informacje w ten sposób:

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

Teraz masz wszystkie te informacje, które możesz wykorzystać do różnych celów, takich jak rozwiązywanie problemów, monitorowanie wydajności, a nawet przegląd bieżącej konfiguracji. Możesz również uzupełnić to innym zestawem Percona Toolkit, takim jak „pt-summary”, aby uzyskać więcej informacji o systemie, w którym działa.

Wnioski

Percona Toolkit to potężne narzędzie pomagające w zadaniach związanych z zarządzaniem bazami danych. Teraz dzięki pt-pg-summary będziesz mógł mieć informacje o swojej instancji PostgreSQL i możesz zintegrować to z systemem monitorowania lub nawet połączyć to narzędzie z innym komponentem Percona Toolkit, aby zebrać jeszcze więcej informacji z twoich systemów.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Alternatywy PGTune — konfiguracja ClusterControl PostgreSQL

  2. Wskazówki dotyczące najlepszych praktyk w PostgreSQL VACUUM i ANALYZE

  3. 2nd Quadrant Deutschland – specjalna okazja na otwarcie szkolenia

  4. Rails Migrations:próbowano zmienić typ kolumny z ciągu na liczbę całkowitą

  5. Funkcja PostgreSQL dla ostatnio wstawionego identyfikatora