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

GBase 8s通过设置表属性,实现表分片自动清理功能

原创 一直在路上 2021-06-26
949

有客户要求实现gbase 8s的表数据删除后,空间也能自动释放,可参考以下设置:

1、有索引是无法进行表属性修改的,先删除索引: drop index temp_table_idx;

2、8位设置表数据的自动清理片数,可灵活更改:ALTER FRAGMENT ON TABLE temp_table MODIFY INTERVAL ROLLING (8 FRAGMENTS) DETACH;

3、查询表结构验证结果:dbschema -d scadadb -t temp_table -ss

4、建索引(建索引加pdq:时间会快)
set pdqpriority 96;
create index temp_table_idx_new on temp_table (略) using btree in datadbs1;

5、可通过开启sysmaster,更改服务器时间进行验证(查看日志:onstat -m)。时间调到00:43,改完需要重启数据库才生效,45应该是程序自动执行分片的时间

参考廖神的资料,锐哥指导:
image.png

小知识点:
oncheck 命令的简介

oncheck 命令可以检查和打印数据对象(表和索引空间所在位置)。例如:
oncheck -cr 可以检查数据库保留页的正确性
oncheck -cD : 可以检查数据的正确性
oncheck -cI :# 可以检查索引的正确性
oncheck -pe 可以打印某个 dbspace 中所有 extent 的分布情况
oncheck -pP 可以打印指定的数据页
oncheck -pT : 可以打印“某个数据表以及其上的索引”的磁盘使用情况
使用如下命令将“数据表 employee 以及其上的索引”的磁盘使用情况输出到文件 pT.out 中:
oncheck -pT scadadb:analog_051> analog_051.out
**

参考廖神的文档:
GBase 8s数据库在语法上支持Round-Robin(轮询调度)、Expression-Based(基于表达式)、List(列表式)、Range(区间)四种分片方式。**
**
这里用到的是Range(区间)**

支持数值,date和datetime类似
包含范围分片(在 FRAGMENT BY 或 PARTITION BY 子句中显式定义的分片)和 间隔分片(数据库服务器在插入操作期间自动创建的分片)两种。

说明:
1)store in选项中的dbspace,是按round robin方式使用。若需要绑定相应的分片和dbspace,需要使用自定义返回dbspace名称的函数方式。

如:
create function mydbs
(
owner char(32), – 所有者
table char(255), – 表名
value datetime year to second, – 与分片键同一数据类型的分片值,或者可以隐式强制转型为那个数据类型的兼容类型
retry int – 重新尝试标记
) returns char(255)
if (mod(month(value),6) == 0)
then
return “datadbs1”;
elif (mod(month(value),6) == 1)
then
return “datadbs2”;
elif (mod(month(value),6) == 2)
then
return “datadbs3”;
elif (mod(month(value),6) == 3)
then
return “datadbs4”;
elif (mod(month(value),6) == 4)
then
return “datadbs5”;
else
return “datadbs6”;
end if;
end function;
注:4个输入参数名称均为指定的。

当我们插入记录时,比如今天的记录(2019-08-31),那么将会插入到datadbs3中(mod(8,6)==2)。

2)rolling 可选子句,指明保留的分片数量,当超过指定的分片数量时,进行detach(拆除)或者discard(销毁)操作
datech或者discard操作并非在达到指定分片数量时立即执行,而是通过sysadmin库的定时任务purge_tables在00:45开始执行。

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

评论