ITPub博客

首页 > 数据库 > > 客户端接入认证-查看数据库连接数

客户端接入认证-查看数据库连接数

作者:GaussDB_数据库 时间:2020-01-14 11:25:47 0 删除 编辑

背景信息

当用户连接数达到上限后,无法建立新的连接。因此,当数据库管理员发现某用户无法连接到数据库时,需要查看是否连接数达到了上限。控制数据库连接的主要以下几种选项。

  • 全局的最大连接数:由运行参数max_connections指定,默认值为800。
  • 某用户的连接数:在创建用户时由CREATE ROLE命令的CONNECTION LIMIT connlimit子句直接设定,也可以在设定以后用ALTER ROLE的CONNECTION LIMIT connlimit子句修改。
  • 某数据库的连接数:在创建数据库时,由CREATE DATABASE的CONNECTION LIMIT connlimit参数指定。
  • 预留连接供gs_clean使用:需要预留连接给gs_clean工具进行残留事务清理,以免由于残留事务长期阻塞系统正常运行,对于有n个CN的集群环境,那么需要至少预留n个连接给各个CN上的gs_clean进行残留事务清理。

操作步骤

  1. 以操作系统用户omm登录CN所在主机,执行source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile命令启动环境变量。
  2. 使用如下命令连接数据库。
    gsql -d postgres -p 25308
    postgres为需要连接的数据库名称,25308为CN的端口号。

    连接成功后,系统显示类似如下信息:

    gsql ((GaussDB Kernel V300R002C00 build 50dc16a6) compiled at 2019-01-29 05:49:21 commit 1071 last mr 1373)
    Non-SSL connection (SSL connection is recommended when requiring high-security)
    Type "help" for help.
    postgres=#

  3. 查看全局会话连接数限制。
    SHOW max_connections;
    max_connections
    -----------------
    800
    (1 row)

    其中800是最大会话连接数。

  4. 查看已使用的会话连接数。

    具体命令请参见表1。
     注意:

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

    表1 查看会话连接数

    描述

    命令

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

    执行如下命令查看连接到指定用户omm的会话连接数上限。其中-1表示没有对用户omm设置连接数的限制。

    SELECT ROLNAME,ROLCONNLIMIT FROM PG_ROLES WHERE ROLNAME='omm';
    rolname | rolconnlimit
    ----------+--------------
    omm | -1
    (1 row)

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

    执行如下命令查看指定用户omm已使用的会话连接数。其中,1表示omm已使用的会话连接数。

    SELECT COUNT(*) FROM V$SESSION WHERE USERNAME='omm';
    count
    -------
    1
    (1 row)

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

    执行如下命令查看连接到指定数据库postgres的会话连接数上限。其中-1表示没有对数据库postgres设置连接数的限制。

    SELECT DATNAME,DATCONNLIMIT FROM PG_DATABASE WHERE DATNAME='postgres';
    datname | datconnlimit
    ----------+--------------
    postgres | -1
    (1 row)

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

    执行如下命令查看指定数据库postgres上已使用的会话连接数。其中,1表示数据库postgres上已使用的会话连接数。

    SELECT COUNT(*) FROM PG_STAT_ACTIVITY WHERE DATNAME='postgres';
    count
    -------
    1
    (1 row)

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

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

    SELECT COUNT(*) FROM V$SESSION;
    count
    -------
    10
    (1 row)


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3154338/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-01-06

  • 博文量
    2907
  • 访问量
    19197