一、greenplum限制连接数的几种方式
一、数据库层面限制整体的用户连接数
调整数据库参数max_connections,可以限制数据库整体的连接数
#查看数据库整体连接数
gpconfig -s max_connections
#也可以进入psql中查询(查询返回master的连接数)
postgres=#show max_connections;
#修改数据库连接数(segment的连接数最好设置为master的4倍左右,具体设置多少请参考实际情况)
gpconfig -c max_connections -v 2000 -m 500
#这个方法会批量修改master和segment的postgresql.conf文件,如果手动修改,需要修改master和segment的所有的postgresql.conf,否则数据库会启动失败。
二、用户层面限制用户连接数
可以在用户层面限制连接数,单个用户可以设置不同的连接数,可以根据用户的需要设置不同的连接数,也可以防止用户把连接数用超。
--查询用户现有的连接数
alter role test_user connection limit 50;
三、资源队列限制活跃连接数
可以通过设置用户在相应的资源队列去限制所在资源队列的活跃连接数,但是不包括空闲连接,空闲连接数可以超出这个范围。
alter resource queue test_queue with (active_statements=100);
alter role test_user resource queue test_queue;
下面是资源队列的相关介绍:
1、创建资源队列语法
Command: CREATE RESOURCE QUEUE
Description: create a new resource queue for workload management
Syntax:
CREATE RESOURCE QUEUE name WITH (queue_attribute=value [, ... ])
where queue_attribute is:
ACTIVE_STATEMENTS=integer