我正在调查数据库连接无限期保持打开状态的问题,这会导致数据库服务器出现问题。如何查看当前打开的 PostgreSQL 服务器连接,特别是使用特定数据库的连接?理想情况下,我还想查看那里正在执行的命令。基本上,我正在寻找与 MSSQL 中的“当前活动”视图等效的东西。
答案1
好的,从别人那里得到的。此查询应该可以解决问题:
select *
from pg_stat_activity
where datname = 'mydatabasename';
答案2
也可以看看pg-top,其作用与 top 类似,只不过它显示的是 postgres 活动。
- 安装 pg-top(在 Debian 中,该包被称为“ptop”)。
- 成为 postgres 用户(例如
sudo su postgres
) - 跑步
pg_top
答案3
SELECT
pid
,datname
,usename
,application_name
,client_hostname
,client_port
,backend_start
,query_start
,query
FROM pg_stat_activity
WHERE state <> 'idle'
AND pid<>pg_backend_pid();
答案4
PostgreSQL ASH 查看器(PASH 查看器)提供活动会话历史数据的图形视图。 https://github.com/dbacvetkov/PASH-Viewer 它是免费且开源的。