pg_squeeze插件安装使用

pg_squeeze插件安装使用

版本信息

系统:Ubuntu 16.04

数据库:PostgreSQL 10.10

pg_squeeze版本:1.2

获取代码

这个链接里可以选择需要下载的pg_squeeze版本(’-b’后的参数为选择的版本分支 )

git clone -b REL1_2 https://github.com/cybertec-postgresql/pg_squeeze.git

1.2版本中pg_squeeze只会在schedule时间范围的开始和结束两个时间点调用

1.0版本中pg_squeeze会在first_check时间第一次调用之后循环调用,时间间隔为task_interval

安装依赖

apt-get install cmake libssl-dev
apt-get install libreadline6 libreadline-dev  postgresql-server-dev-10

进入代码目录中,修改MakeFile,添加PG_CONFIG位置

cd pg_squeeze
vi Makefile
添加以下内容:
    PG_CONFIG = /usr/bin/pg_config
或者指定版本的postgresql路径例如:
    PG_CONFIG = /usr/lib/postgresql/10/bin/pg_config
如果不确定pg_config路径可以使用一下命令查找
    sudo find / -name "pg_config" -print

pg_squeeze_config

在代码目录中,进行编译安装

make
sudo make install

修改配置文件

vi /etc/postgresql/10/main/postgresql.conf
添加以下内容:
    wal_level = logical
    max_replication_slots = 1
    shared_preload_libraries = 'pg_squeeze'

重启postgresql使修改的配置文件生效

service postgresql restart

使用方法

在数据库中创建扩展

create extension pg_squeeze

pg_squeeze_extension
查看安装pg_queeze后生成的系统表
pg_squeeze_tables
表字段说明

  • tabschema:表的模式名。
  • tabname:表名。
  • clustering_index:表示重建表时,表数据的物理顺序按照该索引进行聚簇。
  • rel_tablespace:表示表重建时,移动到哪个表空间中。
  • ind_tablespace:这个一个二维数组,表示索引和表空间的映射关系。
  • schedule:vacuum在一天中运行的时间范围
  • free_space_extra:表示空闲空间超过多少时就会对表进行重建,默认是50。
  • min_size:表必须占用的最小磁盘空间(兆字节)才有资格进行处理,默认值为8。
  • vacuum_max_age:当进行一次vacuum后,认为fsm是有效的最大时间,默认1小时。
  • max_retry:当重建表失败时最大的重新尝试的次数,默认是0.
  • skip_analyse:跳过对表进行analyse,默认是false。

使用pg_squeeze优化空间之前
bf_pg_squeeze
创建squeeze任务

insert into squeeze.tables (tabschema, tabname, schedule, free_space_extra) values ('public', 'tbl_test', '{15:00, 19:00}', '10');

insert_pg_squeeze
启动和关闭pg_squeeze进程

select squeeze.start_worker();
select squeeze.stop_worker();

使用pg_squeeze优化空间之后
af_pg_squeeze

pg_squeeze原理和注意点

pg_squeeze不需要建触发器,所以在重组时对原表的DML几乎没有性能影响。pg_squeeze支持自动的重组,即通过设置阈值、比较用户表与阈值,自动启动WORKER进程,将数据复制到重组表,最后加锁,切换FILENODE。

由于pg_squeeze需要使用logical replication,所以必须设置足够多的slots,而且必须注意可能与STANDBY争抢SLOTS,必须预留足够的SLOTS。
另外由于pg_squeeze可以自动,也可以不设置自动的收缩。 对于自动的收缩,建议不要对繁忙的数据库开启,以免在高峰期触发,带来一定的性能影响。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值