一、表空间限额
1.1 表空间限额使用前准备
1.1.1 编辑实例中kingbase.conf配置文件
检查shared_preload_libraries参数项中是否已经填写了'sys_spacequota'参数,如果没有需要手动进行添加后,进行服务重启;如若已经存在,则忽略即可。
1.1.2 创建extension
执行语句create extension sys_spacequota;
1.1.3 开启表空间限额功能
执行语句alter system set spacequota.enable = on;
call sys_reload_conf();
注:该指令需要在创建extension后执行,否则将不起作用
1.2 表空间限额功能使用
1.2.1 创建表空间路径以及表空间
执行语句\echo `mkdir /tmp/tbs_dir`,/tmp/tbs_dir可以自行定义;
创建表空间create tablespace tbs location '/tmp/tbs_dir';
1.2.2 设置表空间限额
首先,查询表空间的oid,通过select * from sys_tablespace;
注:表空间oid由系统随机生成,不固定
将表空间设置为1字节限额,执行call set_space_quota(19722,1);
执行select * from sys_space_quota;查询已设置的表空间限额信息
在表空间下创建对象并录入数据,执行
create table t1(a int) tablespace tbs;
insert into t1 values(generate_series(1,100));
手动对表空间限额执行计算,执行语句
call space_quota_check();
select * from sys_space_quota;
再次向表空录入数据,就会有告警提示
insert into t1 values(101);
1.2.3 移除表空间限额设置信息
select remove_space_quota(19722);
select * from sys_space_quota;
1.2.4 更改表空间超限告警类型
通过执行
alter system set spacequota.fullwarningtype = '0';
select sys_reload_conf();
将表空间设置为告警模式,超出限额的数据录入会有告警,数据可进行表空间;
alter system set spacequota.fullwarningtype = '1';
select sys_reload_conf();
将表空间设置为错误模式,超出限额的数据录入会有报错,数据不可录入表空间;
1.2.5 查看当前表空间超限告警类型
执行show spacequota.fullwarningtype;
1.2.6 查看参数级别
select context from sys_settings where name='spacequota.fullwarningtype';