PostgreSQL 维护版本:9.3.2、9.2.6、9.1.11、9.0.15 和 8.4.19

发布于 2013-12-05,作者:PostgreSQL 全球开发组

PostgreSQL 全球开发组发布了 PostgreSQL 数据库系统所有受支持版本的关键更新,包括次要版本 9.3.2、9.2.6、9.1.11、9.0.15 和 8.4.19。此更新修复了影响复制和数据库维护的三个严重数据丢失错误。强烈建议所有用户尽快更新其安装。

复制问题会影响 PostgreSQL 二进制复制的某些用户,并可能导致主服务器和备用服务器之间出现少量数据丢失。虽然并非所有用户都会受到影响,但很难预测何时会出现此错误,因此我们强烈建议所有使用复制和连续备份 (PITR) 的用户立即更新。此外,在 PostgreSQL 次要版本 9.3.0、9.3.1、9.2.5、9.1.10 或 9.0.14 下运行复制的用户应计划在更新后对每个备用服务器进行全新的基础备份,以确保之前不存在数据损坏。有关此问题的更多信息,请访问其维基页面

此版本还修复了 VACUUM 中的两个定时问题,这些问题可能导致旧的、覆盖或删除的行在某些情况下稍后重新出现。事务率非常高的用户,特别是那些每几周或更短时间就经历“事务 ID 回绕”的用户,面临此问题的风险最大。这些用户应将 vacuum_freeze_table_age 设置为 0,并在更新后运行数据库范围的 VACUUM。两个 VACUUM 问题中的第二个问题仅影响 9.3,因此对于 9.3 用户来说,更新尤为重要。

此版本中包含的其他修复,其中一些仅影响 9.3 版本,包括

  • 防止“锁已持有”错误。
  • 解决超时管理中的竞争条件,这可能会导致服务器锁定。
  • 修复 HOT 更新和可见性映射中的小错误。
  • 防止备用服务器上的 pg_multixact 存储增长。
  • 修复 GIN 索引中导致瞬时查询失败的错误。
  • 删除导致 SP-GiST 索引创建挂起的问题
  • 修复物化视图中的各种错误。
  • 恢复在复杂查询中使用重复表别名的能力。
  • 修复子查询优化中的两个错误。
  • 允许在生成超过 4GB 的日志时,pg_receivexlog 恢复流式传输。
  • 防止规划器在整行引用时崩溃。
  • 防止过早删除临时文件。
  • 修补多个小的内存泄漏。
  • 禁止显示 CHECK 和 NOT NULL 约束违规的已删除列。
  • 允许窗口函数的默认参数和命名参数。
  • 在转换空的 HStore 字符串时返回有效的 JSON 值。
  • 修复 GMT 时区偏移。
  • 在 pg_upgrade 期间正确报告磁盘空间不足错误。
  • 多个时区的时区更新。

其他更改和上述某些问题的详细信息可在发行说明中找到。

与其他次要版本一样,用户无需转储和重新加载数据库或使用 pg_upgrade 即可应用此更新版本;您只需关闭 PostgreSQL 并更新其二进制文件即可。跳过多个更新版本的用户可能需要执行额外的更新后步骤;有关详细信息,请参阅发行说明。

链接:* 下载 * 发行说明