更新时间:2024-06-11 GMT+08:00

管理数据库连接

操作场景

数据库默认支持一定数量的连接,管理员用户可以通过管理数据库的连接,了解当前数据库的连接性能或增加连接限制,使更多用户或应用程序可以同时连接到数据库。

支持的连接数规格

集群支持的连接数与集群节点规格有关:

表1 支持连接数规格

参数

参数描述

CN连接数

DN连接数

max_connections

允许和数据库连接的最大并发连接数。

800

max(VCPU核数/单节点DN数量*120+24, 5000)

max_pool_size

CN的连接池与其它某个CN/DN的最大连接数。

max_prepared_transactions

设置可以同时处于预备状态的事务的最大数。

查看最大连接数

  1. 使用SQL客户端工具连接集群中的数据库。
  2. 执行以下命令:

    1
    SHOW max_connections;
    

    界面显示的结果与以下信息类似,表示数据库默认支持的最大连接数为200。

    max_connections
    ----------------- 
    200
    (1 row)

查看已使用的连接数

  1. 使用SQL客户端工具连接集群中的数据库。
  2. 支持查看如表2所示的连接数场景。

    除了创建的时候用双引号引起的数据库和用户名称外,以下命令中用到的数据库名称和用户名称,其中包含的英文字母必须使用小写。

    表2 查看连接数介绍

    描述

    命令

    查看指定用户的会话连接数上限。

    执行如下命令查看连接到指定用户dbadmin的会话连接数上限。

    1
    SELECT ROLNAME,ROLCONNLIMIT FROM PG_ROLES WHERE ROLNAME='dbadmin';
    

    查询结果类似如下信息,其中“-1”表示没有对用户dbadmin设置连接数的限制。

     rolname  | rolconnlimit
    ----------+--------------
     dwsadmin |           -1
    (1 row)

    查看指定用户已使用的会话连接数。

    执行如下命令查看指定用户dbadmin已使用的会话连接数。

    1
    SELECT COUNT(*) FROM V$SESSION WHERE USERNAME='dbadmin';
    

    查询结果类似如下信息,其中,“1”表示dbadmin已使用的会话连接数。

     count
    -------
         1
    (1 row)

    查看指定数据库的会话连接数上限。

    执行如下命令查看连接到指定数据库的会话连接数上限。

    1
    SELECT DATNAME,DATCONNLIMIT FROM PG_DATABASE WHERE DATNAME='';
    

    查询结果类似如下信息,其中“-1”表示没有对数据库设置连接数的限制。

     datname  | datconnlimit
    ----------+--------------
      |           -1
    (1 row)

    查看指定数据库已使用的会话连接数。

    执行如下命令查看指定数据库上已使用的会话连接数。

    1
    SELECT COUNT(*) FROM PG_STAT_ACTIVITY WHERE DATNAME='';
    

    查询结果类似如下信息,其中,“1”表示数据库上已使用的会话连接数。

     count 
    -------
         1
    (1 row)

    查看所有用户已使用会话连接数。

    执行如下命令查看所有用户已使用的会话连接数。

    1
    2
    3
    4
    5
    SELECT COUNT(*) FROM PG_STAT_ACTIVITY;
     count
    -------
         10
    (1 row)