PostgreSQL 全球开发组已发布我们数据库系统所有受支持版本的更新,包括 13.4、12.8、11.13、10.18 和 9.6.23,以及 PostgreSQL 14 的第三个 beta 版本。此版本修复了一个安全漏洞,并修复了过去三个月报告的 75 多个错误。
有关更改的完整列表,请查看发行说明。
PostgreSQL 9.6 将于 2021 年 11 月 11 日停止接收修复。如果您在生产环境中运行 PostgreSQL 9.6,我们建议您计划升级到较新的、受支持的 PostgreSQL 版本。请参阅我们的版本控制策略以获取更多信息。
受影响的版本:11 - 13。
精心设计的查询可以读取服务器内存的任意字节。在默认配置中,任何通过身份验证的数据库用户都可以随意完成此攻击。此攻击不需要创建对象的能力。如果服务器设置包含 max_worker_processes=0
,则此攻击的已知版本是不可行的。但是,未发现的攻击变体可能与该设置无关。
此版本标志着 PostgreSQL 14 的第三个 beta 版本的发布,并使社区更接近暂定在第三季度末左右的一般可用性。
本着开源 PostgreSQL 社区的精神,我们强烈建议您在数据库系统中测试 PostgreSQL 14 的新功能,以帮助我们消除可能存在的任何错误或其他问题。虽然我们不建议您在生产环境中运行 PostgreSQL 14 Beta 3,但我们鼓励您找到方法针对此 beta 版本运行典型的应用程序工作负载。
您的测试和反馈将帮助社区确保 PostgreSQL 14 版本坚持我们提供世界上最先进的开源关系数据库的稳定、可靠版本的标准。
此更新还修复了过去几个月报告的 75 多个错误。其中一些问题仅影响版本 13,但许多问题影响所有受支持的版本。
其中一些修复包括
COMMIT
或 ROLLBACK
后恢复 Portal 级别的快照。此更改修复了在 COMMIT
/ROLLBACK
后尝试立即获取 toasted 值时会发生 “no known snapshots” 或 “missing chunk number 0 for toast value” 等错误的情况。WITH
中的查询重写为仅 NOTIFY
的情况,这会导致崩溃。ALTER EXTENSION
现在会锁定扩展。REFRESH MATERIALIZED VIEW CONCURRENTLY
生成的查询中的别名冲突。此命令在包含某些名称(特别是 mv
和 newdata
)的列的物化视图上失败。GENERATED
表达式中的整行变量。DROP OWNED BY
行为的修复。CREATE COLLATION
命令中重新允许旧式 Windows 区域设置名称。pg_stat_activity
中显示它们的最新复制命令,而不是仅仅显示最新的 SQL 命令。postgresql.conf
中的相关条目时,pg_settings.pending_restart
现在显示为 true
。work_mem * hash_mem_multiplier
的有效值超过 2GB。psql
和其他客户端程序中,在处理无效编码的数据时,避免超出字符串的末尾。pg_dump
以正确处理分区表上其启用状态与父触发器的状态不同的触发器。pg_restore
时出现“header 中的创建日期无效”警告。pg_upgrade
现在会向前传递旧安装的 oldestXID
值,并且不再强制执行反环绕 VACUUM
。”pg_upgrade
以检测并警告应升级的扩展。contrib/postgres_fdw
以更好地使用生成列,只要外表中的生成列表示远程表中的生成列即可。有关可用更改的完整列表,请查看发行说明。
所有 PostgreSQL 更新版本都是累积的。与其他的次要版本一样,用户不需要转储并重新加载他们的数据库或使用 pg_upgrade
来应用此更新版本;您可以简单地关闭 PostgreSQL 并更新其二进制文件。
跳过了一个或多个更新版本的用户可能需要运行其他更新后步骤;有关详细信息,请参阅早期版本的发行说明。
有关更多详细信息,请参阅发行说明。
注意:PostgreSQL 9.6 将于 2021 年 11 月 11 日停止接收修复。请参阅我们的版本控制策略以获取更多信息。
PostgreSQL 14 Beta 3 为多范围类型引入了 unnest
函数,以及几个错误修复。
有关 PostgreSQL 14 Beta 3 中包含的更改列表,请查看未解决项页面
https://wiki.postgresql.ac.cn/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://postgresql.ac.cn/account/submitbug/
这是版本 14 的第三个 beta 版本。PostgreSQL 项目将根据测试需要发布其他 beta 版本,然后发布一个或多个候选版本,直到 2021 年末最终发布。有关更多信息,请参阅Beta 测试页面。