新版本发布:PostgreSQL 13.4, 12.8, 11.13, 10.18, 9.6.23, 以及14 Beta 3

发表时间: 2021-08-16 10:23

PostgreSQL全球开发组发布了PostgreSQL数据库系统所有支持版本的更新,包括13.4、12.8、11.13、10.18和9.6.23,以及PostgreSQL 14的第三个测试版。此版本关闭了一个安全漏洞和修复了过去三个月报告的超过75个错误。


有关更改的完整列表,请查看发行说明。


PostgreSQL 9.6 EOL临近


PostgreSQL 9.6将于2021年11月11日停止接收修复。如果您在生产环境中运行PostgreSQL 9.6,我们建议您计划升级到更新的受支持的PostgreSQL版本。有关更多信息,请参阅我们的版本控制政策。


安全问题


CVE-2021-3677:某些查询中的内存泄露


受影响的版本:11-13。


专门设计的查询可以读取任意字节的服务器内存。在默认配置下,任何经过身份验证的数据库用户都可以随意完成此攻击。攻击不需要创建对象的能力。如果服务器设置包括max_worker_processes=0,则此攻击的已知版本是不可行的。但是,未被发现的攻击变体可能与该设置无关。


关于PostgreSQL 14 Beta的说明


此版本标志着PostgreSQL 14的第三个Beta版本,并使社区在第三季度末初步接近全面可用。


本着开源PostgreSQL社区的精神,我们强烈建议您在您的数据库系统中测试PostgreSQL 14的新功能,以帮助我们消除可能存在的任何错误或其他问题。虽然我们不建议您在生产环境中运行PostgreSQL 14 Beta 3,但我们鼓励您找到针对此Beta版本运行典型应用程序工作负载的方法。


您的测试和反馈将帮助社区确保PostgreSQL 14版本符合我们提供稳定、可靠版本的世界上最先进的开源关系数据库的标准。


错误修复和改进


此更新还修复了过去几个月报告的超过75个错误。其中一些问题仅影响版本13,但许多问题会影响所有受支持的版本。


其中一些修复包括:


  • 完全禁用TLS/SSL重新协商。这以前被禁用,但服务器仍将执行客户端启动的重新协商请求。
  • 在过程之后COMMIT或ROLLBACK过程中恢复门户级快照。此更改修复了以下情况:尝试在COMMIT/之后立即获取toasted值ROLLBACK会失败并出现“无已知快照”或“toast值缺少块号0”等错误。
  • 在持久化读取易变查询的游标的输出时避免不当行为。
  • 拒绝将查询WITH重写为just的情况NOTIFY,这会导致崩溃。
  • 数字类型的几个极端情况修复。
  • ALTER EXTENSION现在在添加或删除成员对象时锁定扩展。
  • 现在,当分区表的触发器被克隆到新分区时,“启用”状态会被复制。
  • 避免为生成的查询中的别名冲突REFRESH MATERIALIZED VIEW CONCURRENTLY。此命令在包含具有特定名称(特别是mv和)的列的物化视图上失败newdata。
  • 禁止在GENERATED表达式中使用整行变量。
  • 针对DROP OWNED BY与行级安全(RLS)策略相关的行为的多项修复。
  • 在CREATE COLLATION命令中重新允许旧式Windows区域设置名称。
  • walsenders现在在中显示他们最新的复制命令pg_stat_activity,而不仅仅是显示最新的SQL命令。
  • pg_settings.pending_restart现在显示为删除true相关条目的时间postgresql.conf。
  • 在64位Windows上,允许work_mem * hash_mem_multiplier的有效值超过2GB。
  • 当事务中止记录的WAL重放导致文件截断时更新最小恢复点。
  • 在复制槽失效后,正确推进最旧需要的WAL段水平。这解决了服务器的WAL存储空间不足的问题。
  • 改进并行B树索引构建的排序阶段的进度报告。
  • 修复分区表更新的逻辑复制中的各种崩溃案例,以及在触发分区表的AFTER触发器时。
  • 防止SP-GiST索引插入中的无限循环。
  • 确保查询取消请求可以终止 SP-GiST索引插入。
  • 在psql和其他客户端程序中,在处理无效编码的数据时避免溢出字符串的末尾。
  • 修复pg_dump以正确处理分区表上的触发器,其启用状态与其父触发器的状态不同。
  • pg_restore在不同时区创建的文件上运行时,避免“标题中的无效创建日期”警告。
  • pg_upgrade现在继承旧装置的oldestXID价值,不再强制反环绕VACUUM。”
  • 扩展pg_upgrade以检测和警告应该升级的扩展。
  • 修复contrib/postgres_fdw以更好地处理生成的列,只要外部表中的生成列代表远程表中的生成列。


有关可用更改的完整列表,请查看发行说明。


更新中


所有PostgreSQL更新版本都是累积的。与其他次要版本一样,用户不需要转储和重新加载他们的数据库或使用pg_upgrade来应用此更新版本;您可以简单地关闭PostgreSQL并更新其二进制文件。


跳过一个或多个更新版本的用户可能需要运行额外的更新后步骤;有关详细信息,请参阅早期版本的发行说明。


有关更多详细信息,请参阅发行说明。


注意:PostgreSQL 9.6将在2021年11月11日停止接收修复。有关更多信息,请参阅我们的版本控制政策。


PostgreSQL 14 Beta 3注释


PostgreSQL 14 Beta 3引入了unnest多范围类型的功能以及一些错误修复。


有关PostgreSQL 14 Beta 3中包含的更改列表,请查看未清项页面:

https://wiki.postgresql.org/wiki/PostgreSQL_14_Open_Items#resolved_before_14beta3


要从Beta 2、Beta 1或早期版本的PostgreSQL升级到PostgreSQL 14 Beta 3,您需要使用类似于在PostgreSQL的主要版本之间进行升级的策略(例如pg_upgrade或pg_dump/pg_restore)。有关更多信息,请访问有关升级的文档部分。


测试错误和兼容性


每个PostgreSQL版本的稳定性在很大程度上取决于您,社区,使用您的工作负载和测试工具测试即将发布的版本,以便在PostgreSQL 14普遍可用之前发现错误和回归。由于这是Beta,对数据库进行了细微的更改行为、功能细节和API仍然是可能的。您的反馈和测试将有助于确定对新功能的最终调整,因此请在不久的将来进行测试。用户测试的质量有助于确定我们何时可以发布最终版本。


PostgreSQL wiki中公开了未解决问题的列表。您可以在PostgreSQL网站上使用此表单报告错误:


https://www.postgresql.org/account/submitbug/


测试时间表


这是版本14的第三个beta版本。PostgreSQL项目将根据测试需要发布额外的beta版本,然后是一个或多个候选版本,直到2021年底的最终版本。有关更多信息,请参阅Beta测试页面。


链接


下载

发行说明

安全页面

版本政策

Beta测试信息

PostgreSQL 14 Beta发行说明

PostgreSQL 14未解决的问题

在Twitter上关注@postgresql


本文来源于:

https://www.postgresql.org/about/news/postgresql-134-128-1113-1018-9623-and-14-beta-3-released-2277/