sql >> Databáze >  >> RDS >> PostgreSQL

Použití pt-pg-summary Percona Toolkit pro PostgreSQL

Percona Toolkit je výkonný, bezplatný a open source produkt vyvinutý společností Percona. Jedná se o soubor nástrojů příkazového řádku, které vám umožňují provádět různé MySQL, MongoDB, PostgreSQL a systémové úlohy, které jsou obecně příliš složité na ruční provádění. Podporuje Percona Server pro MySQL, MySQL, MariaDB, PostgreSQL, Percona Server pro MongoDB a MongoDB.

V tomto blogu vám ukážeme, jak nainstalovat Percona Toolkit a jak používat nový nástroj přidaný nedávno do balíčku Percona Toolkit s názvem pt-pg-summary.

Instalace sad Percona Toolkit

Nejprve se podívejme, jak nainstalovat Percona Toolkits, abyste mohli používat pt-pg-summary. V tomto případě použijeme CentOS 7 a PostgreSQL 12.

Nainstalujte úložiště Percona:

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

Po instalaci úložiště byste měli být schopni nainstalovat balíček percona-toolkit:

$ yum install percona-toolkit

Nyní jej stačí spustit se správnými parametry.

$ 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

Spuštění sad nástrojů Percona

Když spustíte tento nástroj, uvidíte výstup seskupený podle následujících kategorií:

  • Databázový port a datový_adresář
  • Seznam tabulkových prostorů
  • Slave and the lag with Master
  • Informace o klastru
  • Databáze
  • Poměry přístupů do mezipaměti indexu
  • Poměry přístupů do mezipaměti tabulky
  • Seznam událostí Wait_events pro celý Cluster – všechny databáze
  • Seznam uživatelů a client_addr nebo client_hostname připojených k --all-databases
  • Počítadla se liší po 10 sekundách
  • Přístup k tabulkám podle databáze
  • Nastavení instance
  • Zpracuje příkaz ke spuštění

Pojďme to spustit na instanci PostgreSQL, abychom viděli příklad:

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

První akcí je shromáždit informace z vašeho PostgreSQL serveru:

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

...

Potom zobrazí všechny shromážděné informace tímto způsobem:

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

Nyní máte všechny tyto informace a můžete je použít k různým účelům, jako je odstraňování problémů, sledování výkonu nebo dokonce k získání přehledu o vaší aktuální konfiguraci. Můžete to také doplnit dalším Percona Toolkit, jako je „pt-summary“, abyste měli více informací o systému, kde běží.

Závěr

Percona Toolkit je výkonný nástroj, který vám pomůže s úkoly správy databází. Nyní s pt-pg-summary budete moci mít informace o své instanci PostgreSQL a můžete je integrovat do monitorovacího systému nebo dokonce tento nástroj zkombinovat s jinou komponentou Percona Toolkit, abyste shromáždili ještě více informací ze svých systémů.


  1. Tabulka je specifikována dvakrát, jak jako cíl pro 'UPDATE', tak jako samostatný zdroj dat v mysql

  2. MySQL získá pozici řádku v ORDER BY

  3. Je mysql_real_escape_string() nefunkční?

  4. 2 Funkce, které vrací měsíc od data v Oracle