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

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

好吧,从别人那里得到它。 这个查询有诀窍:

select * from pg_stat_activity where datname = 'mydatabasename' 

另见pg-top ,除了显示postgres活动外,其行为与top相似。

  • 安装pg-top(在Debian中,这个包名叫“ptop”)。
  • 成为postgres用户(例如sudo su postgres
  • 运行pg_top

参考这篇文章。

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