发布于 2026-09-10T10:59:41.647666Z · Christophe Pettus · thebuild.com

PostgreSQL 19 的 REPACK CONCURRENTLY 重写表回收空间,不必长时间持有排他锁。实现出自 Álvaro Herrera,源头是 Antonin Houska 的 pg_squeeze。它不用触发器记录复制期间的改动,而是复用 CREATE SUBSCRIPTION 初始化表的机制:在与 VACUUM 同级的锁下取快照并建逻辑复制槽,解码增量回放到新副本,最后短暂升级为排他锁完成切换。每个集群同时只能跑一个。
PostgreSQL 19 的 REPACK CONCURRENTLY 重写表回收空间,不必长时间持有排他锁。实现出自 Álvaro Herrera,源头是 Antonin Houska 的 pg_squeeze。它不用触发器记录复制期间的改动,而是复用 CREATE SUBSCRIPTION 初始化表的机制:在与 VACUUM 同级的锁下取快照并建逻辑复制槽,解码增量回放到新副本,最后短暂升级为排他锁完成切换。每个集群同时只能跑一个。
来源记录
- center.info_item · 84f805ac82065159 · 2026-10-03T04:08:35.169032Z
- pgweb.info_item · 84f805ac82065159 · 2026-10-03T04:08:55.967155Z