插件sys_spacequota简介

sys_spacequota可以对指定表空间的大小进行限额,一旦大于该限额,例如对此表空间里的数据进行insert, update, copy to,

select into, create index操作将会被警告或终止(默认为0表示警告,警告或者终止可以通过GUC参数spacequota.fullwarningtype = 0/1来配置)。

表空间限额基本语法

查询限额信息:

select * from sys_space_quota;

检查表空间的限额:

space_quota_check();

设置或更改表空间限额, 可调用 set_space_quota(oid, quota)方法,quota的单位为字节。

set_space_quota(oid, quota)

参数

oid:表空间的oid值。

quota:设置的表空间限额值。

删除表空间限额, 可调用 remove_space_quota(oid)方法。

remove_space_quota(oid)

参数

oid:表空间的oid值。

插件使用说明

测试环境:V008R006C007B0012

[](javascript:void(0)

需要创建扩展
create extension sys_spacequota;
CREATE EXTENSION 开关:创建扩展后,再开启参数开关,限额功能生效
alter system set spacequota.enable = on ;
ALTER SYSTEM TEST=# call sys_reload_conf();
sys_reload_conf
-----------------
t
(1 row) 创建测试使用的限额表空间
TEST=# CREATE TABLESPACE ttspace location '/home/kingbase7/tbl_user';
CREATE TABLESPACE TEST=# select spcname,oid from sys_tablespace;
spcname | oid
-------------+-------
sys_default | 1663
sys_global | 1664
sysaudit | 1986
ttspace | 27158 设置表空间限额
TEST=# select set_space_quota(27158,100);
set_space_quota
----------------- (1 row) 在设置限额的表空间上创建表
TEST=# create table ttw (id int) tablespace ttspace;
CREATE TABLE

[](javascript:void(0)

1.spacequota.fullwarningtype参数默认设置为0,插入数据有警告,但是数据插入成功。

[](javascript:void(0)

TEST=# show spacequota.fullwarningtype;
spacequota.fullwarningtype
----------------------------
0
(1 row) TEST=# insert into ttw select generate_series(1,10000);
WARNING: user's disk space quota exceeded
INSERT 0 10000
TEST=#
TEST=# select count(*) from ttw;
count
-------
10000
(1 row) 尝试多次插入数据均有警告,但是数据插入成功了。
TEST=# insert into ttw select generate_series(1,10000);
WARNING: user's disk space quota exceeded
INSERT 0 10000
TEST=#
TEST=# select count(*) from ttw;
count
-------
20000
(1 row) TEST=# insert into ttw select generate_series(1,10000);
WARNING: user's disk space quota exceeded
INSERT 0 10000
TEST=# select count(*) from ttw;
count
-------
30000
(1 row) TEST=# insert into ttw select generate_series(1,10000);
WARNING: user's disk space quota exceeded
INSERT 0 10000
TEST=# select count(*) from ttw;
count
-------
40000
(1 row)

[](javascript:void(0)

2.spacequota.fullwarningtype参数设置为1时,需要手工执行space_quota_check()检查表空间限额,如果sys_space_quota视图中current_size超出quota值,则再次插入报错,禁止插入数据

[](javascript:void(0)

TEST=# alter system set spacequota.fullwarningtype=1;
ALTER SYSTEM TEST=# call sys_reload_conf();
sys_reload_conf
-----------------
t
(1 row) 查看此参数已经设置为1,1的含义不是警告,而是报错
TEST=# show spacequota.fullwarningtype;
spacequota.fullwarningtype
----------------------------
1s
(1 row) 检查表空间限额,判断是否full
TEST=# call space_quota_check(); 可以看到is_full字段是t,表示检查限额后,系统识别表空间已满
TEST=# select * from sys_space_quota;
spcname | quota | current_size | is_full
---------+-------+--------------+---------
ttspace | 100 | 8210 | t
(1 row)
检查表空间限额后,再次插入数据报错,禁止插入
TEST=# insert into ttw select generate_series(1,100);
ERROR: user's disk space quota exceeded truncate 表后再检查限额
TEST=# truncate ttw;
TRUNCATE TABLE call space_quota_check(); 查看表空间限额配置,current_size空间已经释放
TEST=# select * from sys_space_quota;
spcname | quota | current_size | is_full
---------+-------+--------------+---------
ttspace | 120 | 30 | f
(1 row)

[](javascript:void(0)

从以下结果中我们能看出,当执行完 space_quota_check(),检查空间后,再次插入数据触发表空间限额上限,才会告警,

当spacequota.fullwarningtype设置为1后,提示error,禁止插入,数据没有插入到表中。

[](javascript:void(0)

TEST=# insert into ttw select generate_series(1,100);
INSERT 0 100
TEST=# insert into ttw select generate_series(1,100);
INSERT 0 100
插入数据库数据,查询表空间限额不变
TEST=# select * from sys_space_quota;
spcname | quota | current_size | is_full
---------+-------+--------------+---------
ttspace | 100 | 30 | f
(1 row) 执行检查表空间限额函数后,再次查询视图,current_size有变化
TEST=# call space_quota_check();
CALL
TEST=# select * from sys_space_quota;
spcname | quota | current_size | is_full
---------+-------+--------------+---------
ttspace | 100 | 8210 | t
(1 row) 此时,再次insert数据报错
TEST=# insert into ttw select generate_series(1,100);
ERROR: user's disk space quota exceeded

[](javascript:void(0)

sys_spacequota 扩展插件介绍的更多相关文章

  1. vs2010(vs2012)好用的扩展插件介绍

    一直以来只使用番茄vs助手(https://www.wholetomato.com/downloads/default.asp)辅助写代码,也都忘了是谁介绍的,不过确实好用. 相比原始的vs,它提供了 ...

  2. vscode简单使用介绍及个人常用扩展插件

    vscode全称Visual Studio Code 是微软开发一款IDE,官方地址 vscode  作为一款前端编辑器功能很强大,灵活,可以根据个人喜好选择扩展插件,而且还支持多种开发语言, 关于v ...

  3. Sharepoint 2013列表视图和字段权限扩展插件(免费下载)!

    记得2014年春节期间,有博客园的网友通过QQ向我咨询Sharepoint 2013列表视图和字段权限扩展,因为之前他看到我博客介绍Sharepoint 2010列表视图和字段的权限控制扩展使用,问有 ...

  4. ExtJS4.2学习(13)基于表格的扩展插件---rowEditing

    鸣谢:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-11-24/182.html --------------- ...

  5. 常用网站开发类Firefox扩展插件 (转)

    作为一个 Web 开发人员,你几乎没有理由不喜欢Firefox,因为在Firefox下有很多专门针对开发的扩展插件,非常好用,这里就介绍一些常用的针对网站开发的FireFox扩展,供Web开发人员参考 ...

  6. 100个精选zencart扩展插件

    100个精选zencart扩展插件 特别推荐 1. 数据库备份 2. 产品横向布局. 3. 邮件订阅Newsletter Subscribe. 4. google 翻译google_translate ...

  7. JMeter 线程组之Stepping Thread Group插件介绍

    线程组之Stepping Thread Group插件介绍   by:授客 QQ:1033553122 测试环境 apache-jmeter-2.13   插件: https://jmeter-plu ...

  8. jenkins 插件介绍

    1.jenkins 利用maven编译,打包,所需插件:Maven Integration: Maven集成插件这个插件提供了Jenkins和Maven的深度集成,无论是好还是坏:项目之间的自动触发取 ...

  9. jira 插件介绍地址

    1. 官方的 介绍地址 http://confluence.gjingao.com/pages/viewpage.action?pageId=328170 序号 插件名称 功能概要 供应商 资源 10 ...

  10. jupyter notebook设置主题背景,字体和扩展插件

    windows上安装Anaconda (IPython notebook) Anaconda是一个包与环境的管理器,一个Python发行版,以及一个超过1000多个开源包的集合.它是免费和易于安装的, ...

随机推荐

  1. spring boot结合ehcache防止恶意刷新请求

    说明 我们在把开发好的网站上线之前一定要考虑到别人恶意刷新你的网页这种情况,最大限度的去限制他们.否则往往这将搞垮你的应用服务器,想象一下某个恶意用户利用众多肉鸡在1分钟内请求你网页几十万次是个什么情 ...

  2. spring boot中使用定时任务

    1.在主类上添加EnableScheduling注解 package com.laoxu.gamedog; import org.springframework.boot.SpringApplicat ...

  3. String--cannot convert from 'const char *' to 'LPTSTR'错误

    这种错误,很多情况下是类型不匹配 LPTSTR表示为指向常量TCHAR字符串的长指针 TCHAR可以是wchar_t或char,基于项目是多字节还是宽字节版本. 看下面的代码,代码来源:Example ...

  4. OpenCV开发笔记(五十七):红胖子8分钟带你深入了解直方图反向投影(图文并茂+浅显易懂+程序源码)

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  5. matplotlib画图中x轴过于密集的解决办法

    import matplotlib.ticker as ticker ax.xaxis.set_major_locator(ticker.MultipleLocator(base=10)) # tic ...

  6. pyqt5中通过pycharm配置designer(win和mac都适用,修改下designer目录路径即可)

    安装 pip install PyQt5 -i https://pypi.douban.com/simple pip install PyQt5-tools -i https://pypi.douba ...

  7. 调试 Docker 容器内部进程

    首发于官方博客:https://nebula-graph.com.cn/posts/debug-nebula-graph-processes-docker/ 摘要:本文以 Nebula Graph 进 ...

  8. Java 多态性的使用

    1 package com.bytezreo.duotai3; 2 3 /*** 4 * 5 * @Description 练习多态性的使用 6 * @author Bytezero·zhenglei ...

  9. 精贴总结 - Serverless 的承诺都兑现了吗

    原文 - Serverless 的承诺都兑现了吗? 一.个人看法 serverless根本目的是降低成本,所以baas是核心 冷启动是关键的技术难点,也限制了faas的作用域 供应商锁定是个坑,标准化 ...

  10. 13 种在 JavaScript 中删除/过滤数组的方法【转】

    英文 | https://javascript.plainenglish.io/13-methods-to-remove-filter-an-item-in-an-array-and-array-of ...