???作者中国DBA联盟(ACDU)成员10余年DBA工作经验Oracle、PostgreSQL ACECSDN博客专家及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 成为一个值得期待的版本。