KingbaseES 扩展介绍sys_squeeze

插件sys_squeeze简介
sys_squeeze是KingbaseES的一个扩展插件,该组件将提供人工调用命令实现对表dead tuple的清理工作。该组件在清理表空间的过程中,不会全程加排他锁,能保证运行期间尽可能不影响对目标表的访问。该插件的实现依赖于逻辑解码,因此使用该插件之前必须保证数据库wal_level等级设置为’logical’。

 该插件提供了清理表空间的函数,创建插件并设置好wal_level后,通过调用select squeeze.squeeze_table(opt1,opt2,opt3,opt4,opt5) 进行清理操作。 

其他说明:

  • sys_squeeze 不支持对包含复合类型的表进行清理

    sys_squeeze 依赖逻辑复制,要求目标表有主键或唯一约束作为 IDENTITY INDEX,并占用一个复制槽

    sys_squeeze 清理重建表时,尽量避免该表的 ALTER TABLE、ALTER INDEX、VACUUM
    FULL、CLUSTER 或 TRUNCATE 并发操作

    sys_squeeze 不支持对分区表主表直接清理重建,需要对子表执行清理重建

    sys_squeeze 建议在非业务高峰期执行,建议尽量避免对大表使用

    sys_squeeze 需要额外的临时存储空间,请确保 data
    目录或目标表空间容量充足,存储空间容量要求最多为目标表(包括其索引、toast 表)的容量大小

插件sys_squeeze加载方式
首先确认 sys_squeeze 是否已存在于 kingbase.conf 的 shared_preload_libraries 配置项中,正常情况下sys_squeeze默认会加载到shared_preload_libraries,可直接执行下一步语句;如果没有配置,需要将‘sys_squeeze’追加到该配置中,并重启数据库。

执行 create extension sys_squeeze; 语句。

shared_preload_libraries = 'sys_squeeze'

插件sys_squeeze的参数配置
函数接口squeeze.squeeze_table(opt1,opt2,opt3,opt4,opt5) 有5个可配置参数:

opt1: 填写所要清理的目标表的模式名,必须项

opt2: 填写所要清理的目标表名,必须项

opt3: 指定该表中已存在的index 名,若指定,会在新生成的表空间中按照此index顺序物理排列tuple,可选项,不指定填null

opt4: 指定将新生成的表置入指定的表空间。 可选项,若不指定填null,表示仍然使用原有表空间。

opt5: 将相应index置入指定的表空间。可选项,若不指定填null,表示仍然使用原有表空间。

插件sys_squeeze的使用方法
加载 sys_squeeze 插件后,可使用如下函数对指定表做清理。

  1. 普通的清理 例如要对public模式下的test表做清理
select squeeze.squeeze_table('public','test',null,null,null);
  1. 指定按照索引顺序对表内元祖进行物理排序 例如要对public模式下的test表,按照已有的索引idx对表内元祖重排
select squeeze.squeeze_table('public','test','idx',null,null);
  1. 指定将重排后的表置入指定的表空间 例如要对public模式下的test表,放入表空间tbl_spc1
select squeeze.squeeze_table('public','test',null,'tbl_spc1',null);
  1. 指定将重排后的表及索引置入指定的表空间 例如要对public模式下的test表以及索引idx,放入表空间tbl_spc1
select squeeze.squeeze_table('public','test',null,'tbl_spc1',ARRAY[['idx','tbl_spc1']]);
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值