前置条件
·已有一个云数据库 PostgreSQL 实例,创建请参考 创建 PostgreSQL 实例。
·该实例已安装 pg_repack 插件,安装请参考 如何在云数据库 PostgreSQL 实例中创建插件。
·已有一台云服务器 CVM ,该云服务器跟云数据库 PostgreSQL 实例在同一个 VPC 网络。Linux 系统的云服务器配置请参见 快速配置 Linux 云服务器。
·云服务器 CVM 实例已安装 psql 客户端,详细安装教程请参考 PostgreSQL 产品文档。
安装客户端
使用之前请先在云服务器上安装客户端,点击 安装包下载地址,并上传安装包进行安装。
unzip pg_repack-1.5.2.zipcd pg_repack-1.5.2make && make install
清理单表
— 检查但不执行pg_repack -k –dry-run –no-order -h 10.*.*.* -p 5432 -U user -d database -t schema1.table1– 检查并执行pg_repack -k –no-order -h 10.*.*.* -p 5432 -U user -d database -t schema1.table1
清理单个 schema
— 检查但不执行pg_repack -k –dry-run –no-order -h 10.*.*.* -p 5432 -U user -d database -c schema– 检查并执行pg_repack -k –no-order -h 10.*.*.* -p 5432 -U user -d database -c schema
清理单个库
— 检查但不执行pg_repack -k –dry-run –no-order -h 10.*.*.* -p 5432 -U user -d database– 检查并执行pg_repack -k –no-order -h 10.*.*.* -p 5432 -U user -d database
清理整个实例(仅清理安装 pg_repack 插件的数据库)
— 检查但不执行pg_repack -k –dry-run –no-order -h 10.*.*.* -p 5432 -U user -a– 检查并执行pg_repack -k –no-order -h 10.*.*.* -p 5432 -U user -a
检查清理效果
— 查看库大小top,sql如下:select datname,pg_size_pretty(pg_database_size(datname)) from pg_database order by pg_database_size(datname) desc;– 查看库中表大小top,sql如下:SELECT relname AS table_name, pg_size_pretty(pg_total_relation_size(relid)) AS total_size FROM pg_catalog.pg_statio_user_tables ORDER BY pg_total_relation_size(relid) DESC;– 查看特定表的大小,sql如下:select pg_size_pretty(pg_total_relation_size('pgtest'));