如何在 PostgreSQL 8.4 中查看活动连接和“当前活动”

EMP*_*EMP 141 postgresql

我正在调查数据库连接无限期打开的问题,导致数据库服务器出现问题。我如何查看当前打开的 PostgreSQL 服务器连接,尤其是那些使用特定数据库的连接?理想情况下,我也想看看那里正在执行什么命令。基本上,我正在寻找与 MSSQL 中的“当前活动”视图等效的东西。

EMP*_*EMP 193

好的,从别人那里得到的。这个查询应该可以解决问题:

select *
from pg_stat_activity
where datname = 'mydatabasename';
Run Code Online (Sandbox Code Playgroud)


Way*_*rad 31

另请参阅pg-top,它的作用类似于 top ,但它显示 postgres 活动。

  • 安装 pg-top(在 Debian 中,该软件包称为“ptop”)。
  • 成为 postgres 用户(例如sudo su postgres
  • pg_top

  • 在 buster 上,debian 包被称为 [pgtop](https://packages.debian.org/buster/pgtop) (2认同)

小智 17

参考来自这篇文章。

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();
Run Code Online (Sandbox Code Playgroud)