如何列出PostgreSQL上的活动连接?

问题描述 投票:131回答:3

PostgreSQL中是否有命令选择到给定数据库的活动连接?

psql声明我无法删除我的数据库之一,因为有活动连接,所以我想看看什么是连接(以及来自哪些机器)

sql postgresql database-connection listings
3个回答
228
投票

哦,我刚刚在PostgreSQL论坛上找到了该命令:

SELECT * FROM pg_stat_activity;

33
投票

以下将为您提供在postgres DB-中的活动连接/查询

SELECT 
    pid
    ,datname
    ,usename
    ,application_name
    ,client_hostname
    ,client_port
    ,backend_start
    ,query_start
    ,query
    ,state
FROM pg_stat_activity
WHERE state = 'active';

您可以使用'idle'而不是active来获取已执行的连接/查询。


1
投票
SELECT * FROM pg_stat_activity WHERE datname = 'dbname' and state = 'active';

由于pg_stat_activity包含具有任何状态(idleactive)的所有数据库的连接统计信息,因此应在查询中包括数据库名称和连接状态以获得所需的输出。

© www.soinside.com 2019 - 2024. All rights reserved.