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


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


66
2018-03-31 23:06




从PostgreSQL 9.0开始,您甚至可以看到导致问题的应用程序的名称。也许这对将来的检查很有帮助。 - postgresql007


答案:


好的,从其他人那里得到它。这个查询可以解决问题:

select *
from pg_stat_activity
where datname = 'mydatabasename'

91
2018-03-31 23:33





也可以看看 PG-顶,除了显示postgres活动外,其作用类似于top。

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

15
2017-11-29 18:29



它可以在没有root访问权限的情况下工作吗? - EMP
@Evgeny,据我所知,你必须以postgres用户身份登录。没有root访问权限就应该可以。 - Wayne Conrad


参考本文。 

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();

8
2018-02-09 20:11



query 和 pid 被命名 current_query 和 procpid,和 state 不可用 pg_stat_activity 在PostgreSQL 9.2之前。 - cpburnz


PostgreSQL ASH Viewer(PASH Viewer)提供活动会话历史数据的图形视图。 https://github.com/dbacvetkov/PASH-Viewer 它是免费和开源的。

截图


0
2018-06-25 15:46