Bộ công cụ Percona là một sản phẩm mã nguồn mở, miễn phí và mạnh mẽ do Percona phát triển. Nó là một tập hợp các công cụ dòng lệnh cho phép bạn thực hiện các tác vụ MySQL, MongoDB, PostgreSQL và hệ thống khác nhau nói chung là quá phức tạp để thực hiện thủ công. Nó hỗ trợ Máy chủ Percona cho MySQL, MySQL, MariaDB, PostgreSQL, Máy chủ Percona cho MongoDB và MongoDB.
Trong blog này, chúng tôi sẽ hướng dẫn bạn cách cài đặt Bộ công cụ Percona và cách sử dụng một công cụ mới được bổ sung gần đây trong gói Bộ công cụ Percona có tên là pt-pg-Summary.
Cài đặt Bộ công cụ Percona
Trước tiên, hãy xem cách cài đặt Bộ công cụ Percona để có thể sử dụng pt-pg-Summary. Trong trường hợp này, chúng tôi sẽ sử dụng CentOS 7 và PostgreSQL 12.
Cài đặt Kho lưu trữ Percona:
$ yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
Sau khi cài đặt kho lưu trữ, bạn sẽ có thể cài đặt gói percona-toolkit:
$ yum install percona-toolkit
Bây giờ bạn chỉ cần chạy nó bằng các tham số chính xác.
$ 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
Chạy Bộ công cụ Percona
Khi chạy công cụ này, bạn sẽ thấy một kết quả được nhóm theo các danh mục sau:
- Cổng cơ sở dữ liệu và Data_Directory
- Danh sách các không gian bảng
- Nô lệ và tụt hậu với Master
- Thông tin cụm
- Cơ sở dữ liệu
- Tỷ lệ truy cập vào bộ nhớ đệm lập chỉ mục
- Tỷ lệ truy cập vào bộ nhớ cache của bảng
- Danh sách Wait_events cho toàn bộ Cụm - tất cả cơ sở dữ liệu
- Danh sách người dùng và client_addr hoặc client_hostname được kết nối với --all-databases
- Các bộ đếm khác nhau sau 10 giây
- Quyền truy cập bảng trên mỗi cơ sở dữ liệu
- Cài đặt phiên bản
- Xử lý lệnh khởi động
Vì vậy, hãy chạy nó trên phiên bản PostgreSQL để xem ví dụ:
$ pt-pg-summary -hlocalhost -p5432 -Uadmindb
Hành động đầu tiên là thu thập thông tin từ máy chủ PostgreSQL của bạn:
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
...
Sau đó, nó sẽ hiển thị tất cả thông tin được thu thập theo cách này:
##### --- 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
Bây giờ bạn có tất cả thông tin này, bạn có thể sử dụng nó cho các mục đích khác nhau như khắc phục sự cố, giám sát hiệu suất hoặc thậm chí để có cái nhìn tổng quan về cấu hình hiện tại của bạn. Bạn cũng có thể bổ sung điều này bằng Bộ công cụ Percona khác như “pt-Summary” để có thêm thông tin về hệ thống mà nó đang chạy.
Kết luận
Percona Toolkit là một công cụ mạnh mẽ giúp bạn thực hiện các công việc quản lý cơ sở dữ liệu. Giờ đây với pt-pg-Summary, bạn sẽ có thể có thông tin về phiên bản PostgreSQL của mình và bạn có thể tích hợp nó vào hệ thống giám sát hoặc thậm chí kết hợp công cụ này với một thành phần Percona Toolkit khác để thu thập thêm thông tin từ hệ thống của bạn.