迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 数据库 > PostgreSQL >

在 PostgreSQL 中显示连接

作者:迹忆客 最近更新:2023/03/20 浏览次数:

pg_stat_activity 是一个数据库视图。该视图是一个虚拟表,出于安全原因使用它。

它基于数据库中的一个或多个表存储查询,而不是重复编写相同的查询。

PostgreSQL 中连接/查询的状态

pg_stat_activity 显示与当前活动相关的信息。pg_stat_activity 中有一个列类型列表。

其中,所有都不是必需的。假设你想查看 psql 中的活动连接。

因此,你可以运行以下命令。

SELECT
    pid
    ,datname
    ,usename
    ,application_name
    ,client_hostname
    ,client_port
    ,backend_start
    ,query_start
    ,query
    ,state
FROM pg_stat_activity
WHERE state = '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 中删除数据库

删除数据库的一般命令如下所示。

DROP DATABASE [IF EXISTS] <database_name>;

但是当你与数据库建立活动连接时,可能会出现问题。在这种情况下,你需要执行以下操作。

  1. 首先,检查数据库是否处于活动状态。使用以下查询,你可以查看特定数据库的所有详细信息。

    SELECT *
    FROM pg_stat_activity
    WHERE datname = <name of the database>;
    
  2. 然后,你需要杀死那个数据库的进程。假设你有一个名为 Shop 的活动数据库。

    现在让我们终止该数据库的进程。

    SELECT pg_terminate_backend (pid)
    FROM pg_stat_activity
    WHERE pg_stat_activity = 'Shop';
    

    现在,你已成功终止该过程。

  3. 执行 DROP 命令,如下所示。

    DROP DATABASE Shop
    

通过执行这些步骤,你应该能够删除任何活动的数据库。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 PSQL 中运行 SQL 文件

发布时间:2023/03/20 浏览次数:178 分类:数据库

本文解释了如何直接从终端/命令行或 psql shell 运行 SQL 文件。为此,你需要指定主机名、端口、用户名和数据库名称。

在 PostgreSQL 中使用循环

发布时间:2023/03/20 浏览次数:124 分类:PostgreSQL

在 PL/SQL 中,你可能需要在 Postgres 中使用循环。我们可以使用 FOR 和 WHILE 语句来创建循环。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便