pg_repack
第一步:准备环境
# 设置 PostgreSQL 的路径
export PATH=/data/svr/postgresql-17.5/bin:$PATH
export PG_CONFIG=/data/svr/postgresql-17.5/bin/pg_config
确保命令能用:
which pg_config pg_config --version
# 应显示 17.5
第二步:获取 pg_repack 源码
cd /data/build/
git clone https://github.com/reorg/pg_repack.git
cd pg_repack
第三步:编译
make
如果一切顺利会输出类似:
gcc -Wall -Wmissing-prototypes -Wpointer-arith ...
第四步:手动复制编译产物
PostgreSQL 插件要放到 你的 PG 安装目录里:
拷贝 .control 文件和 SQL 文件:
# 进入编译输出的 extension 目录(自动生成的)
cd pg_repack
# 确认输出了这些文件:
ls -1 *.sql *.control
# 假设 PostgreSQL 安装在
/data/src/postgresql-17.5
cp pg_repack.control /data/svr/postgresql-17.5/share/extension/
cp pg_repack--*.sql /data/svr/postgresql-17.5/share/extension/
拷贝可执行文件(用于命令行调用)
cp pg_repack /data/src/postgresql-17.5/bin/
chmod +x /data/src/postgresql-17.5/bin/pg_repack
第五步:确认扩展已生效
psql -U postgres -d 你的库 -c "CREATE EXTENSION pg_repack;"
如果成功,就表示已经可以用了!
第六步:使用 pg_repack 在线瘦身
/data/src/postgresql-17.5/bin/pg_repack -U postgres -d 你的库 -t "user"
总结路径对应关系
文件类型 | 放到哪里 |
.control | /data/src/postgresql-17.5/share/extension/ |
.sql 文件 | /data/src/postgresql-17.5/share/extension/ |
可执行文件 | /data/src/postgresql-17.5/bin/ |