暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

人大金仓数据库KingbaseES 用户资源限制

数据猿 2023-12-06
1670


关键字:

KingbaseES、用户资源限制、人大金仓

用户访问控制

kingbase可以配置用户的连接数以及账号使用期限。

  1. 用户连接数限制:

在创建用户的时候指定 CONNECTION LIMIT 参数设置用户连接数限制。如果用户有登录权限,此参数可以指定该用户能建立多少并发连接。-1(默认值)表示无限制。注意这个限制仅针对于普通连接,预备事务和后台工作者连接都不受这一限制管辖。

  1. 用户使用期限

在创建用户的时候指定 VALID UNTIL 参数设置用户使用期限, VALID UNTIL 机制设置一个日期和时间,在该时间点之后角色的口令将会失效。默认为不设置,口令将总是有效。

用户CPU限制

限制使用的CPU资源,KingbaseES中通过 kdb_resource_group 插件来实现用户限额功能,通过 sys_space_quota 函数实现用户表空间限额。

  1. 使用用户限额需要开启资源组

资源组依赖于操作系统的cgroup功能,所以必须安装cgroup并正确挂载和启动,对应的挂载的子系统目录给予操作用户写入和读取权限。

需要将动态库添加到 kingbase.conf 文件的 shared_preload_libraries 中,并重启数据库。

shared_preload_libraries = 'kdb_resource_group' # (change requires restart)

在 kingbase.conf 文件中设置参数,开启资源组功能,默认是off为关闭状态。

resource_group_activated = on

在 kingbase.conf 文件中扩展内的非必选参数,设置cgroup的挂载主目录,默认为'/sys/fs/cgroup',修改后需要重启数据库生效。

kdb_resource_group.resource_group_path = '/sys/fs/cgroup' #(change requires restart)

在 kingbase.conf 文件中扩展内的非必选参数,设置kingbase可使用操作系统CPU的总量,默认为100,取值范围1~100,修改后需要删除cgroup下的kingbase节点,命令如下:cgdelete -r cpu:kingbase。并重启数据库生效。

kdb_resource_group.resource_group_total_cpu = 100 #(change requires restart)

  1. 资源组管理

创建一个资源组

CREATE RESOURCE GROUP group_name WITH (resource_name = value);

group_name为创建的资源组名称, 一个数据库内唯一,该对象不属于某个模式下。 resource_name为设置控制资源类型的名称,目前支持cpu_shares和cpu_cfs_quota_us。 value为资源的值,为数字类型。 不同参数取值范围不同,非值域报错。

修改一个资源组的限制值

ALTER RESOURCE GROUP group_name SET (resource_name = value);

删除一个资源组

DROP RESOURCE GROUP group_name;

查看资源组信息

select * from sys_resgroup;

查看资源组资源值,通过系统表sys_resgroupcapability来查看资源组关联的相关值限制。 系统表 sys_resgroupcapability,任何用户都可以查询。

select * from sys_resgroupcapability;

设置一个资源组的相对CPU使用率

ALTER RESOURCE GROUP group_name SET (cpu_shares = value);

value 默认值: 10000 取值范围:10-10000

设置一个资源组的CPU绝对使用率限制

ALTER RESOURCE GROUP group_name SET (CFS_QUOTA_US = value);

value 默认值:100,不限制cpu使用 取值范围:整数,1-100。

  1. 资源组关联用户

ALTER RESOURCE GROUP rgroup2 SET (USER='user1');

此SQL语句将user1用户加入到rgroup2资源组中,user1用户将受到rgroup2中资源组的资源使用控制。

查看资源组与用户关联关系,通过系统表sys_resauthid可查询数据库用户和资源组的关联。

select * from sys_resauthid;

开启资源组后连接数据库报错或警告时,确认GUC参数设置,以及cgroup目录的权限和拥有者,可以使用以下命令清除资源组的kingbase节点,然后重新连接数据库会再次创建cgroup的kingbase节点。

cgdelete -r cpu:kingbase


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论