插件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. Java设计模式-建造者模式Builder

    介绍 建造者模式(Builder Pattern) 又叫生成器模式,是一种对象构建模式.它可以 将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方 法可以构造出不同表现(属性)的对象 ...

  2. VS2019 添加三方文件夹遇到的坑

    在开发新项目时需要用到一些三方 API,这些三方 API 没有生成 lib,所以我们在 VS 编译器中添加这些三方文件夹的头文件路径后 会出现 ERROR LNK2019 的错误提示,这些提示通常都是 ...

  3. win32-localtime的使用

    下面的例子用于反映本地系统的日期格式变化 // locale test #include <stdio.h> #include <locale.h> #include < ...

  4. django自定义模型管理器Manager及方法

    django自定义模型管理器Manager及方法 自定义管理器(Manager) 在语句Book.objects.all()中,objects是一个特殊的属性,通过它来查询数据库,它就是模型的一个Ma ...

  5. 【Azure 应用服务】Java ODBC代码中,启用 Managed Identity 登录 SQL Server 报错 Managed Identity authentication is not available

    问题描述 在App Service中启用Identity后,使用系统自动生成 Identity. 使用如下代码连接数据库 SQL Server: SQLServerDataSource dataSou ...

  6. Java 常用类 String的常用方法(3)

    1 /** 2 * String常用方法3 3 * 替换: 4 * String replace(char oldChar,char newChar): 返回一个新的字符串,它是通过 5 * 用new ...

  7. hadoop集群启动成功但进入web50070管理界面显示DataNode为0与集群运行,结果全为0的问题总结

    Hadoop完全分布式出现DataNode为0的解决方案 问题:在配置好Hadoop后,jps命令下看见Hadoop服务已经启动,namenode和datanode都已经启动,但进入Hadoop界面还 ...

  8. harbor 安装

    下载地址: https://github.com/goharbor/harbor/releases?page=1 下载了多个版本,发现仅v1.10.17版本支持GC清理,所以这里安装的v1.10.17 ...

  9. [VueJsDev] 日志 - BBTime-LOG

    [VueJsDev] 目录列表 https://www.cnblogs.com/pengchenggang/p/17037320.html BBTime-LOG ::: details 目录 目录 B ...

  10. redis三主三从详细搭建过程

    搭建Redis三主三从集群的详细步骤如下: 准备环境: 确保你有六台服务器或虚拟机,每台服务器上都已经安装了Redis.这些服务器将用于搭建三主三从的Redis集群. 确保所有服务器之间的网络连接正常 ...