在 PostgreSQL 中显示连接
pg_stat_activity
是一个数据库视图。该视图是一个虚拟表,出于安全原因使用它。
它基于数据库中的一个或多个表存储查询,而不是重复编写相同的查询。
PostgreSQL 中连接/查询的状态
pg_stat_activity
显示与当前活动相关的信息。pg_stat_activity
中有一个列类型列表。
其中,所有都不是必需的。假设你想查看 psql 中的活动连接。
因此,你可以运行以下命令。
SELECTpid,datname,usename,application_name,client_hostname,client_port,backend_start,query_start,query,stateFROMpg_stat_activityWHEREstate='active';
输出:
postgres-# WHERE state = 'active';
pid | datname | usename | application_name | client_hostname | client_port | backend_start | query_start | query | state
-------+----------+----------+------------------+-----------------+-------------+------------------------------+-------------------------------+-------------------------+--------
24256 | postgres | postgres | psql | | 1068 | 2022-04-02 16:03:07.20189+06 | 2022-04-02 16:03:10.382665+06 | SELECT +| active
| | | | | | | | pid +|
| | | | | | | | ,datname +|
| | | | | | | | ,usename +|
| | | | | | | | ,application_name +|
| | | | | | | | ,client_hostname +|
| | | | | | | | ,client_port +|
| | | | | | | | ,backend_start +|
| | | | | | | | ,query_start +|
| | | | | | | | ,query +|
| | | | | | | | ,state +|
| | | | | | | | FROM pg_stat_activity +|
| WHERE state = 'active'; |
(1 row)
postgres=#
有列类型列表。其中一些我们在上面的 SQL 命令中使用。
这是表中的描述。
列名 | 描述 |
---|---|
datname |
数据库名称 |
application_name |
连接到此后端的应用程序。 |
client_host-name |
对于 localhost ,它将是空白的,但会有一个用于远程连接的主机名。 |
client_port |
客户端用于与后端通信的 TCP 端口。 |
backend_start |
此时间戳显示客户端何时连接。 |
query_start |
此时间戳显示此查询何时开始。如果数据库被禁用,它将显示上次查询的开始时间。 |
query |
此文本显示实际查询。 |
status |
这显示了数据库的状态。 |
这是所有列名和有关它的详细信息。此外,你可以从该官方文档中找到所有观点。
在 PostgreSQL 中删除数据库
删除数据库的一般命令如下所示。
DROPDATABASE[IFEXISTS]<database_name>;
但是当你与数据库建立活动连接时,可能会出现问题。在这种情况下,你需要执行以下操作。
-
首先,检查数据库是否处于活动状态。使用以下查询,你可以查看特定数据库的所有详细信息。
SELECT*FROMpg_stat_activityWHEREdatname=<nameofthedatabase>;
-
然后,你需要杀死那个数据库的进程。假设你有一个名为
Shop
的活动数据库。现在让我们终止该数据库的进程。
SELECTpg_terminate_backend(pid)FROMpg_stat_activityWHEREpg_stat_activity='Shop';
现在,你已成功终止该过程。
-
执行
DROP
命令,如下所示。DROPDATABASEShop
通过执行这些步骤,你应该能够删除任何活动的数据库。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。