PostgreSQL 全球开发组已发布对所有支持版本的 PostgreSQL 数据库系统的关键更新,包括次要版本 9.3.2、9.2.6、9.1.11、9.0.15 和 8.4.19。此次更新修复了三项严重的数据丢失错误,这些错误会影响复制和数据库维护。我们敦促所有用户尽快更新其安装。
复制问题影响了一些 PostgreSQL 二进制复制的用户,可能导致主服务器和备用服务器之间发生少量数据丢失。虽然并非所有用户都会受到影响,但难以预测此 bug 何时会发生,因此我们敦促所有使用复制和连续备份(PITR)的用户立即更新。此外,在 PostgreSQL 次要版本 9.3.0、9.3.1、9.2.5、9.1.10 或 9.0.14 下运行复制的用户,在更新后应计划为每个备用服务器执行一次新的基础备份,以确保没有先前的数据损坏。有关此问题的更多信息可在 其 wiki 页面上找到。
此次发布还修复了 VACUUM 的两项时序问题,在某些情况下可能导致旧的、被覆盖或删除的行在稍后重新出现。交易量非常高的用户,尤其是那些每几周或更短时间内出现“事务 ID 回绕”的用户,面临的风险最大。这些用户应将 vacuum_freeze_table_age 设置为 0,并在更新后运行一次全数据库的 VACUUM。这两项 VACUUM 问题中的第二项仅影响 9.3 版本,因此对于 9.3 用户来说,更新尤为重要。
本次发布包含的其他修复,其中一些仅影响 9.3 版本,包括:
其他更改以及上述部分问题的详细信息可在发行说明中找到。
与以往的小版本发布一样,用户无需转储和重新加载数据库或使用 pg_upgrade 即可应用此更新版本;您只需关闭 PostgreSQL 并更新其二进制文件即可。跳过多个更新版本的用户可能需要执行额外的后续步骤;详情请参阅发行说明。