pg_repack

作者: Penny 分类: pgsql,数据库 发布时间: 2025-06-22 00:26

第一步:准备环境

# 设置 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/
wp-content