讲师中心 微信公众号
AI工具推荐 视频效率加速

PostgreSQL怎么使用pg_repack扩展在线无锁重组表释放物理空间

冬静姑娘_5214

冬静姑娘_5214

发布时间:2026-10-08 06:07:26

|

460人浏览过

|

来源于php中文网

原创

pg_repack报“must be superuser to use”错误是因为其命令行工具和数据库扩展均强制要求SUPERUSER权限,即使已创建扩展,调用时仍校验;非superuser需加--no-superuser-check(不推荐),RDS等云环境须确认高权限账号开启。

postgresql怎么使用pg_repack扩展在线无锁重组表释放物理空间

pg_repack 能在线释放表的物理空间,但必须满足主键或唯一索引、足够磁盘空间、超级用户权限这三个硬性条件,否则直接报错退出。

为什么 pg_repack 会报 “must be superuser to use” 错误

这是最常卡住的第一步。pg_repack 命令行工具和数据库内扩展都要求执行用户具备 SUPERUSER 权限,哪怕你用 CREATE EXTENSION pg_repack 成功了,命令行调用时仍会校验权限。

  • 非 superuser 用户必须加 --no-superuser-check 参数(不推荐,有功能限制)
  • 在 RDS 或云服务上,部分实例默认禁用 superuser,需确认是否已开启高权限账号或联系平台支持
  • 即使你是表所有者,没有 SUPERUSER 也会失败 —— pg_repack 不接受 OWNER 级别降级

表必须有主键或 NOT NULL 的唯一索引

pg_repack 依赖唯一排序键来保证数据迁移顺序和一致性。没有它,连第一步日志表同步都会失败,报错类似 ERROR: no primary key or unique index found。

  • 检查语句:SELECT constraint_name, constraint_type FROM information_schema.table_constraints WHERE table_name = 'your_table';
  • 临时补救:添加 ALTER TABLE your_table ADD PRIMARY KEY (id);(确保 id 列无 NULL 且唯一)
  • 不能用普通索引替代;UNIQUE 索引也必须建在 NOT NULL 列上

执行全表重组并真正释放磁盘空间

仅运行 pg_repack 命令本身不会立即腾出空间 —— 它只是把数据搬到新表,旧表残留仍占空间,直到原子交换完成且 WAL 刷盘后系统才回收。

  • 基础命令:pg_repack -d your_db -t your_table -U postgres -h localhost -p 5432
  • 加 --no-order 可跳过按主键排序(节省时间,但无法恢复聚集顺序)
  • 指定表空间迁移:--tablespace new_tspace --moveidx,避免原表空间写满
  • 大表务必加 -j 4(并行度),否则单线程同步日志可能拖慢 replay 阶段
  • 执行中查进度:SELECT query FROM pg_stat_activity WHERE query LIKE '%pg_repack%';

容易被忽略的关键点

最后阶段交换表名是原子操作,但会生成大量 WAL,可能瞬间打满 wal_keep_size 或触发从库延迟;如果表上有长事务未结束,pg_repack 会一直等待,表现为卡在 “waiting for concurrent transactions to finish”。

  • 运行前先查:SELECT pid, now() - backend_start, state, query FROM pg_stat_activity WHERE state = 'active' AND query NOT ILIKE '%pg_repack%';
  • 磁盘空间不是“1倍表大小”就够 —— 是“表 + 所有索引”的总大小再乘以 2,很多线上事故源于只算了主表
  • 完成后立刻执行 VACUUM ANALYZE your_table;,否则查询计划器仍可能沿用旧统计信息

热门AI工具

更多
豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

相关专题

更多
postgresql常用命令
postgresql常用命令

postgresql常用命令psql、createdb、dropdb、createuser、dropuser、l、c、dt、d table_name、du、i file_name、e和q等。本专题为大家提供postgresql相关的文章、下载、课程内容,供大家免费下载体验。

213

2023.10.10

常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

4329

2023.11.02

postgresql常用命令有哪些
postgresql常用命令有哪些

postgresql常用命令psql、createdb、dropdb、createuser、dropuser、l、c、dt、d table_name、du、i file_name、e和q等。更详细的postgresql常用命令,大家可以访问下面的文章。

627

2023.11.16

postgresql常用命令介绍
postgresql常用命令介绍

postgresql常用命令有l、d、d5、di、ds、dv、df、dn、db、dg、dp、c、pset、show search_path、ALTER TABLE、INSERT INTO、UPDATE、DELETE FROM、SELECT等。想了解更多postgresql的相关内容,可以阅读本专题下面的文章。

1376

2023.11.20

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

460

2026.02.12

PostgreSQL 性能优化与查询执行计划实战
PostgreSQL 性能优化与查询执行计划实战

本专题深入解析PostgreSQL性能优化核心,聚焦查询执行计划的实战应用。通过EXPLAIN命令精准定位瓶颈,结合索引策略、SQL改写与参数调优,系统提升查询效率。从执行计划解读到性能调优全流程,助你掌握数据库性能诊断与优化实战能力。

150

2026.05.08

PostgreSQL 在 Next.js / Go 全栈架构中的工程化实践
PostgreSQL 在 Next.js / Go 全栈架构中的工程化实践

本文详解如何利用Next.js(搭配Drizzle ORM)与Go后端构建高性能应用,充分发挥PG在JSONB非结构化存储与pgvector向量检索上的优势。从数据建模到Docker容器化部署,打造支持AI时代的“One Database”工程化解决方案。

881

2026.05.08

PostgreSQL高级特性、内核机制与现代数据架构
PostgreSQL高级特性、内核机制与现代数据架构

本专题从MVCC并发控制与WAL日志等内核机制出发,详解JSONB、PostGIS及pgvector等高级特性。探讨如何利用单一引擎支撑关系型、向量及图数据等现代数据架构需求,助您掌握构建高并发、智能化应用的核心技术。

224

2026.05.08

FrankenPHP集成Laravel详细教程
FrankenPHP集成Laravel详细教程

本专题提供FrankenPHP集成Laravel的详细配置指南,全面解析运行原理、开发环境搭建、Caddyfile配置、Octane工作模式、数据库连接、队列任务、定时任务和生产环境优化,解决部署过程中常见的报错与兼容性问题。

0

2026.10.08

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 0.1万人学习

SQL优化与排查(MySQL版)
SQL优化与排查(MySQL版)

共26课时 | 3.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn