PostgreSQL 17 发布了!非常稳定的版本

???

作者:

中国DBA联盟(ACDU)成员,10余年DBA工作经验,

Oracle、PostgreSQL ACE

CSDN博客专家及B站知名UP主,全网粉丝10万+

擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复,

安装迁移,性能优化、故障应急处理

PostgreSQL 17已与2024年9月26日正式发布了,如约而至, 每年1个大版本, 每个大版本都是LTS版,那么让我们一起来看下这次到底做了哪些更新!

1.版本迭代

PostgreSQL 全球开发组计划每年发布一个包含新功能的主要版本(major version)。同时,对于每个主要版本,至少每 1个季度会发布一个次要版本(minor release),用于修复问题和安全漏洞。

对于主要版本,PostgreSQL 全球开发组将会提供5年的更新支持,然后在发布一个最终次要版本之后停止提供支持。

2.新增特性

块级别增量备份与恢复:极大提高了备份大型数据库的效率,减少了全拷贝的需求。

逻辑复制 Failover 和 Switchover:增强了逻辑复制功能,支持在流复制基础上的故障切换,提高了高可用性。

Copy 错误处理:改进了 Copy 命令的错误处理机制,支持跳过错误行,同时记录错误行

JSON 类型处理能力增强:主要增强了 JSONPath 功能,使得处理 JSON 数据更为顺手

Vacuum 性能改进:引入了 TIDStore 数据结构,突破了存储 Dead Tuple 的内存限制,大幅提升了 Vacuum 效率

索引性能优化:支持并行创建 Brin 索引,GIST/SP-GIST 索引支持增量排序,BTree 倒序增强等。

高并发锁竞争优化:通过一系列 WAL 锁优化,提升了高并发写入性能

性能优化:包括批量导入性能提升、Merge Append 提升 Union 性能、增量排序提升 Group By 性能、减少分区表 Partitionwise Join 内存消耗等。

新增 GUC 参数:新增了一系列的 GUC 参数,提升数据库管理灵活性

SQL 语法、函数功能增强:包括分区表分裂与合并、Merge 语法、生成列、Exclude 约束等功能增强。

管理手段增强:支持 Login 事件、新增维护角色、读写分离一致性函数支持等。

内部统计信息、系统视图增强:新增等待事件视图、增强检查点统计信息、增强并行操作统计信息等。

Table Access Method 接口增强:新增了自定义 Option 的接口,Undo 回滚段可能即将到来。

扩展接口能力增强:新增钩子、支持自定义等待事件、新增自定义注入点、支持 DSM 注册等。

Wire Protocol、Libpq 协议增强:继续加强,希望国产数据库厂商开发兼容 MySQL、SQL Server 等协议更容易。

3.如何升级

PostgreSQL版本发布规则,一年一个大版本,一个季度一个小版本;PG遇到的BUG问题,社区会很快进行修复,并在下一个版本中发布,因此有必要进行对数据库版本升级。实际的生产环境中,升级前需要详细的阅读各版本的release说明。

复制代码
目前小版本升级的步骤
1.安装最新版本数据库
2.停止数据库实例
3.对数据目录进行备份
4.使用新版本启动数据库
5.调整环境变量,PGHOME/LD_LIRARAY_PATH等



目前PG大版本的升级方法主要有以下四种方式:
1.转储数据的方式
pg_dump或pg_dumpall导出数据,pg_restore或psql导入
2.通过pg_upgrade进行升级
3.通过逻辑复制的方式进行版本升级
内置逻辑或者pg_logical 扩展插件

4.总结

这些新特性和改进不仅提升了数据库的性能和功能,也增强了数据库的可用性和灵活性,使得 PostgreSQL 17 成为一个值得期待的版本。

相关推荐
稀饭过霍2 分钟前
数据类型【TINYINT、SMALLINT、INT、BIGINT、decimal(18,2)】表示意思
数据库
俺不要写代码6 分钟前
数据库:DML
数据库·oracle
这个DBA有点耶9 分钟前
两张百万级大表JOIN跑崩了?试试这3招
数据库·代码规范
IntMainJhy15 分钟前
「Flutter三方库sqflite的鸿蒙化适配与实战指南:从入门到踩坑的本地数据库开发全记录」
数据库·flutter·华为·信息可视化·数据库开发·harmonyos
counting money31 分钟前
Spring框架基础(依赖注入-全注解形式)
java·数据库·spring
计算机安禾39 分钟前
【Linux从入门到精通】第33篇:数据库MySQL/MariaDB安装与基础调优
linux·数据库·mysql
瀚高PG实验室42 分钟前
ERROR: invalid input syntax for type integer: “a“
数据库·瀚高数据库
S1998_1997111609•X43 分钟前
论next/js在打击省份及犯罪行为集团的系统分析[特殊字符]设计
网络·数据库·百度·ssh·开闭原则
dfdfadffa1 小时前
如何创建仅在首次订阅时执行一次计算的 RxJS 懒加载 Observable
jvm·数据库·python
Irene19911 小时前
Oracle 中:为什么 from 子查询后面需要一个别名
数据库·oracle