云服务器内容精选

  • 背景信息 当用户连接数达到上限后,无法建立新的连接。因此,当数据库管理员发现某用户无法连接到数据库时,需要查看是否连接数达到了上限。控制数据库连接的主要以下几种选项。 全局的最大连接数:由运行参数max_connections指定。 某用户的连接数:在创建用户时由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 2 3 4 5 postgres=# SHOW max_connections; max_connections ----------------- 800 (1 row) 其中800是最大会话连接数。 查看已使用的会话连接数。 具体命令请参见表1。 除了创建的时候用双引号引起的数据库和用户名称外,以下命令中用到的数据库名称和用户名称,其中包含的英文字母必须使用小写。 表1 查看会话连接数 描述 命令 查看指定用户的会话连接数上限。 执行如下命令查看连接到指定用户omm的会话连接数上限。其中-1表示没有对用户omm设置连接数的限制。 1 2 3 4 5 postgres=# SELECT ROLNAME,ROLCONNLIMIT FROM PG_ROLES WHERE ROLNAME='omm'; rolname | rolconnlimit ----------+-------------- omm | -1 (1 row) 查看指定用户已使用的会话连接数。 执行如下命令查看指定用户omm已使用的会话连接数。其中,1表示omm已使用的会话连接数。 1 2 3 4 5 6 postgres=# SELECT COUNT(*) FROM dv_sessions WHERE USERNAME='omm'; count ------- 1 (1 row) 查看指定数据库的会话连接数上限。 执行如下命令查看连接到指定数据库postgres的会话连接数上限。其中-1表示没有对数据库postgres设置连接数的限制。 1 2 3 4 5 6 postgres=# SELECT DATNAME,DATCONNLIMIT FROM PG_DATABASE WHERE DATNAME='postgres'; datname | datconnlimit ----------+-------------- postgres | -1 (1 row) 查看指定数据库已使用的会话连接数。 执行如下命令查看指定数据库postgres上已使用的会话连接数。其中,1表示数据库postgres上已使用的会话连接数。 1 2 3 4 5 postgres=# SELECT COUNT(*) FROM PG_STAT_ACTIVITY WHERE DATNAME='postgres'; count ------- 1 (1 row) 查看所有用户已使用会话连接数。 执行如下命令查看所有用户已使用的会话连接数。 1 2 3 4 5 postgres=# SELECT COUNT(*) FROM dv_sessions; count ------- 10 (1 row)
  • 背景信息 当用户连接数达到上限后,无法建立新的连接。因此,当数据库管理员发现某用户无法连接到数据库时,需要查看是否连接数达到了上限。控制数据库连接的主要以下几种选项。 全局的最大连接数:由运行参数max_connections指定。 某用户的连接数:在创建用户时由CREATE ROLE命令的CONNECTION LIMIT connlimit子句直接设定,也可以在设定以后用ALTER ROLE的CONNECTION LIMIT connlimit子句修改。 某数据库的连接数:在创建数据库时,由CREATE DATABASE的CONNECTION LIMIT connlimit参数指定。
  • 背景信息 当用户连接数达到上限后,无法建立新的连接。因此,当数据库管理员发现某用户无法连接到数据库时,需要查看是否连接数达到了上限。控制数据库连接的主要以下几种选项。 全局的最大连接数:由运行参数max_connections指定。 某用户的连接数:在创建用户时由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 2 3 4 5 openGauss=# SHOW max_connections; max_connections ----------------- 800 (1 row) 其中800是最大会话连接数。 查看已使用的会话连接数。 具体命令请参见表1。 除了创建的时候用双引号引起的数据库和用户名称外,以下命令中用到的数据库名称和用户名称,其中包含的英文字母必须使用小写。 表1 查看会话连接数 描述 命令 查看指定用户的会话连接数上限。 执行如下命令查看连接到指定用户omm的会话连接数上限。其中-1表示没有对用户omm设置连接数的限制。 1 2 3 4 5 openGauss=# SELECT ROLNAME,ROLCONNLIMIT FROM PG_ROLES WHERE ROLNAME='omm'; rolname | rolconnlimit ----------+-------------- omm | -1 (1 row) 查看指定用户已使用的会话连接数。 执行如下命令查看指定用户omm已使用的会话连接数。其中,1表示omm已使用的会话连接数。 1 2 3 4 5 6 openGauss=# SELECT COUNT(*) FROM dv_sessions WHERE USERNAME='omm'; count ------- 1 (1 row) 查看指定数据库的会话连接数上限。 执行如下命令查看连接到指定数据库postgres的会话连接数上限。其中-1表示没有对数据库postgres设置连接数的限制。 1 2 3 4 5 6 openGauss=# SELECT DATNAME,DATCONNLIMIT FROM PG_DATABASE WHERE DATNAME='postgres'; datname | datconnlimit ----------+-------------- postgres | -1 (1 row) 查看指定数据库已使用的会话连接数。 执行如下命令查看指定数据库postgres上已使用的会话连接数。其中,1表示数据库postgres上已使用的会话连接数。 1 2 3 4 5 openGauss=# SELECT COUNT(*) FROM PG_STAT_ACTIVITY WHERE DATNAME='postgres'; count ------- 1 (1 row) 查看所有用户已使用会话连接数。 执行如下命令查看所有用户已使用的会话连接数。 1 2 3 4 5 openGauss=# SELECT COUNT(*) FROM dv_sessions; count ------- 10 (1 row)
  • 背景信息 当用户连接数达到上限后,无法建立新的连接。因此,当数据库管理员发现某用户无法连接到数据库时,需要查看是否连接数达到了上限。控制数据库连接的主要以下几种选项。 全局的最大连接数:由运行参数max_connections指定。 某用户的连接数:在创建用户时由CREATE ROLE命令的CONNECTION LIMIT connlimit子句直接设定,也可以在设定以后用ALTER ROLE的CONNECTION LIMIT connlimit子句修改。 某数据库的连接数:在创建数据库时,由CREATE DATABASE的CONNECTION LIMIT connlimit参数指定。