PostgreSQL 9.6.2,9.5.6,9.4.11,9.3.16和9.2.20发布!
发表于2017-02-09
PostgreSQL全球开发组已经发布了该数据库系统的所有支持版本的更新,包括9.6.2,9.5.6,9.4.11,9.3.16和9.2.20。此版本包括防止索引构建和某些预写日志重播情况下的数据损坏问题的修复程序,下面将详细介绍。它还包含在过去三个月内其他错误报告75个补丁。
用户可以计划在下次计划的停机时间应用此更新。
用CREATE INDEX CONCURRENTLY造成损坏
如果在以前没有建立索引的列上调用CREATE INDEX CONCURRENTLY,则存在竞争条件,则在CREATE INDEX CONCURRENTLY命令同时运行的事务更新的行可能已被错误索引。
如果您怀疑这可能发生,最可靠的解决方案是在安装此更新后重建受影响的索引。
这个问题存在于PostgreSQL的9.2,9.3,9.4,9.5和9.6系列中。
修复了可见性和预写日志的稳定性
这些版本包含了几个修复,以提高可见数据和WAL日志记录的稳定性,我们这里强调一下。
在此版本之前,当用于目录扫描的特殊快照当前可用时,数据可能会被真空操作过早删除。具体来说,真空操作不会知道这个特殊快照的最早的xmin。错误将与一个消息,如:
"cache lookup failed for relation 1255"
此版本确保vacuum操作将考虑目录扫描快照。
此外,有几个修复程序来提高预写日志的稳定性,包括:
* BRIN索引WAL日志记录的修复,其中重放可能使BRIN索引的一部分无用并需要重新计算
*