今晚PostgreSQL 18 Beta3版本发布,这也意味着RC正式版不远了。本文继续跟踪对比Beta2版本的一些重要变化,详细的变化请参考官网悬浮链接。
相比Beta2版本的主要变化
- 功能变化
pg_dumpall支持非文本格式相关功能被回退
- 特性优化或修复:
1.逻辑复制创建发布时publish_generated_columns选项为空抛出错误提示,而非自动发布计算存储列。
2.pg_dump/pg_restore工具移除–with-data、–with-schema选项,且重命名–with-statistics选项为–statistics,以免与现有的–data-only、–schema-only产生歧义。
几个跳票的特性
- 查看其他进程的内存使用
当前会话的内存上下文使用可以查看pg_backend_memory_contexts视图,而新增的函数pg_get_process_memory_contexts可以查看其他进程,包括前后台进程的内存使用情况。

这个特性在Beta2版本时被回退了。
- pg_dumpall支持非文本格式
pg_dumpall一直以来只能使用-Fp文本格式备份,通常也需要搭配压缩来使用,参考实例如下:
$ pg_dumpall | gzip - > dump.compress.pipe.sql.gz
$ gunzip dump.compress.pipe.sql.gz
$ psql -f dump.compress.pipe.sql
而新功能支持自定义压缩或tar包等格式,让备份消耗的时间变得更少。除此之外,pg_restore还可以对备份的元数据进行关联恢复,比如排除一些DB,只对某个DB进行恢复。
$ pg_dumpall -Fc -f dir.dump
$ pg_restore -C -f just.one.db.sql \
--exclude-database="template*|postgres" dir.dump/
这个特性在Beta3版本时被回退了。
- 手工调整表的统计信息
新版本通过新增的pg_restore_relation_stats/pg_restore_attribute_stats函数可以在升级时迁移表的统计信息,另外还提供了一个函数pg_set_relation_stats用于手工调整表的统计信息
这个特性在Beta版本之前被回退了。
上个发行版17,也有个重要的跳票特性,关于分区表结构的重规划功能:SPLIT PARTITIONS和MERGE PARTITIONS
推荐阅读
PG 18 Beta2 发布及变化解读
PG 18 Beta1 今日发布
PG 18beta1 透传客户端口令|更安全的跨库访问
PG 18beta1 真正的AIO来了|发展历程&测试
PG 18beta1 真正的AIO来了|感慨&环境准备




