PostgreSQL 9.2.2、9.1.7、9.0.11 和 8.4.15 发布

发布于 2012-12-06,作者:PostgreSQL 全球开发组

PostgreSQL 全球开发组发布了 PostgreSQL 数据库系统所有当前版本的更新,包括 9.2.2、9.1.7、9.0.11、8.4.15 和 8.3.22 版本。使用 PostgreSQL 热备复制的用户应在下次可能的机会更新。其他用户应在其下次维护窗口期更新。

此版本修复了热备中一个重要的页面排序问题,该问题可能在某些情况下导致备用机上的索引损坏。此外,此更新还修补了检查点和事务 ID 回绕的定时问题,这些问题在某些情况下可能导致数据损坏。今天的更新还修复了 CREATE INDEX CONCURRENTLY 和 DROP INDEX CONCURRENTLY 的多个问题,这些问题可能导致这些命令失败或产生损坏的索引。使用此功能的用户可能需要 REINDEX 或重新创建受影响的索引(见下文)。

此更新版本还包含 PostgreSQL 社区在过去一个月中发现并修补的许多小问题的修复,包括几个特定于 9.2 版本的修复。这些包括:

  • 防止 psql 因编码输入数据不正确而崩溃
  • 修复 pg_regress gmake 构建问题
  • 确保为扩展创建正确的目录
  • 修复缓冲区锁和 VACUUM 的一些问题
  • pg_upgrade 的多项修复和改进
  • 修复故障转移到备用机时恢复结束的错误
  • 避免在备用模式下出现虚假的“时间线 ID 序列不正确”错误
  • 在关闭期间不要启动新的子进程
  • 提高 JOIN 使用部分索引的能力
  • 修复各种整数溢出错误
  • 消除 record_out() 和 record_send() 中的内存泄漏
  • 在 COMMIT 时跳过搜索子事务日志
  • 修复 WaitLatch() 定时问题
  • 修复 ALTER COLUMN TYPE 中继承的检查约束的处理
  • 使 ALTER EXTENSION SET SCHEMA 的行为与文档一致
  • 使 SEQUENCE SET 语句位于分段转储的“data”部分
  • 防止解析器认为 VIEW 具有系统列
  • 修复 pg_dump 的 --clean 模式
  • 防止内存不足时哈希表损坏
  • 各种查询计划器和执行器修复和改进
  • 多项文档更新
  • 七个时区的 DST 更新

PostgreSQL 8.3 将于 2013 年 2 月停止生命周期(EOL)。因此,此更新很可能是该版本的倒数第二个更新。我们敦促 8.3 版本用户现在开始计划完全升级到更高版本的 PostgreSQL。有关更多信息,请参阅我们的版本策略

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

大量使用 CREATE INDEX CONCURRENTLY 的用户可能希望 REINDEX 或删除并重新创建在使用 CREATE INDEX CONCURRENTLY 创建的索引后应用更新,以确保其完整性。遗憾的是,并发创建的索引与非并发创建的索引无法区分,因此用户需要依赖 DBA 知识。应用更新后,用户可以并发创建新索引,然后并发删除旧索引,以避免停机。

链接