1. 查看連接使用情況以及殺掉相應的連接
查看哪些用戶在鏈接數據庫
select * from pg_stat_activity ;
殺死連接 , 因為每個連接都是一個進程,所以要指定殺死連接時,需要pg_stat_activity的pid列信息:
postgres=# SELECT pg_terminate_backend(1973) ;-[ RECORD 1 ]--------+--pg_terminate_backend | t
- pg_terminate_backend 執行需要具有SUPERUSER權限 , 否則只能查看和殺當前用戶的連接
可以批量殺連接的方法 , 指定時間和連接狀態來批量殺連接:
# 刪指定時間范圍的空閑連接select pg_terminate_backend(pid) from pg_stat_activity where backend_type='client backend' and state='idle' and state_change > '2020-10-01 00:00:00' and state_change < '2021-01-01 00:00:00' ;# 刪超過一天沒請求的空閑連接select pg_terminate_backend(pid) from pg_stat_activity where backend_type='client backend' and state in ('idle', 'idle in transaction', 'idle in transaction (aborted)', 'disabled') and (current_timestamp - state_change > interval '1 day');
2. 查看服務器的IP地址
一般用于調試用
select inet_server_addr() as "connected_to";
3. 查看數據庫版本號
postgres=# SHOW server_version_num; server_version_num -------------------- 120004(1 row)postgres=# select version(); version ----------------------------------------------------------------------------------------------------------------- PostgreSQL 12.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39), 64-bit, TelePG(1 row)postgres=# show server_version; server_version ---------------- 12.4(1 row)postgres=# SELECT current_setting('server_version_num'); current_setting ----------------- 120004(1 row)
4. 獲取當前連接的PID
postgres=# SELECT pg_backend_pid(); pg_backend_pid ---------------- 11394(1 row)