PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Menggunakan pt-pg-summary Percona Toolkit untuk PostgreSQL

Percona Toolkit adalah produk sumber terbuka yang kuat, gratis, dan dikembangkan oleh Percona. Ini adalah kumpulan alat baris perintah yang memungkinkan Anda untuk melakukan berbagai tugas MySQL, MongoDB, PostgreSQL, dan sistem yang, secara umum, terlalu rumit untuk dilakukan secara manual. Mendukung Percona Server untuk MySQL, MySQL, MariaDB, PostgreSQL, Percona Server untuk MongoDB, dan MongoDB.

Di blog ini, kami akan menunjukkan cara menginstal Percona Toolkit dan cara menggunakan alat baru yang ditambahkan baru-baru ini dalam paket Percona Toolkit bernama pt-pg-summary.

Memasang Percona Toolkit

Pertama, mari kita lihat cara menginstal Percona Toolkits untuk dapat menggunakan pt-pg-summary. Dalam hal ini, kita akan menggunakan CentOS 7 dan PostgreSQL 12.

Instal Repositori Percona:

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

Setelah repositori terinstal, Anda seharusnya dapat menginstal paket percona-toolkit:

$ yum install percona-toolkit

Sekarang Anda hanya perlu menjalankannya menggunakan parameter yang benar.

$ 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

Menjalankan Percona Toolkit

Saat Anda menjalankan alat ini, Anda akan melihat output yang dikelompokkan menurut kategori berikut:

  • Port Database dan Data_Directory
  • Daftar Tablespace
  • Budak dan lag dengan Master
  • Informasi Klaster
  • Database
  • Rasio Hit Cache Indeks
  • Rasio Hit Cache Tabel
  • Daftar Wait_events untuk seluruh Cluster - semua database
  • Daftar pengguna dan client_addr atau client_hostname yang terhubung ke --all-databases
  • Penghitungan berbeda setelah 10 detik
  • Akses tabel per database
  • Setelan instance
  • Memproses perintah startup

Jadi, mari kita jalankan pada instance PostgreSQL untuk melihat contohnya:

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

Tindakan pertama adalah mengumpulkan informasi dari server PostgreSQL Anda:

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

...

Kemudian, semua informasi yang dikumpulkan akan ditampilkan dengan cara ini:

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

Sekarang Anda memiliki semua informasi ini, Anda dapat menggunakannya untuk berbagai tujuan seperti pemecahan masalah, pemantauan kinerja, atau bahkan untuk mendapatkan gambaran umum tentang konfigurasi Anda saat ini. Anda juga dapat melengkapinya dengan Percona Toolkit lain seperti “pt-summary” untuk mendapatkan informasi lebih lanjut tentang sistem yang dijalankannya.

Kesimpulan

Percona Toolkit adalah alat yang ampuh untuk membantu Anda dengan tugas-tugas manajemen database. Sekarang dengan pt-pg-summary, Anda akan dapat memiliki informasi tentang instance PostgreSQL Anda, dan Anda dapat mengintegrasikan ini dalam sistem pemantauan atau bahkan menggabungkan alat ini dengan komponen Percona Toolkit lain untuk mengumpulkan lebih banyak informasi dari sistem Anda.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memetakan bidang titik geometri PostGIS dengan Hibernate pada Spring Boot

  2. Fungsi dengan jumlah variabel parameter input

  3. Bagaimana cara menginstal paket Python di Linux sehingga ditemukan oleh ekstensi PostgreSQL 13 plpython3u yang sudah berfungsi?

  4. Menggunakan INSERT dengan Database PostgreSQL menggunakan Python

  5. Kembalikan file cadangan postgres menggunakan baris perintah?