Toggle navigation
PostgreSQL中文社区
首页
(current)
社区新闻
中文文档
加入ACE
相关资料
了解PostgreSQL
PostgreSQL相关文档
PostgreSQL软件下载
PostgreSQL中文图书
社区年会PPT资料
关于中文社区
注册
登录
所有版本列表
首页
新版本发布声明
PostgreSQL 11.2版本发布说明
翻译:
doudou586
... 新闻稿采编:
2019-03-02 09:44:19+08
软件发布:2019-02-14
### PostgreSQL 11.2、10.7、9.6.12、9.5.16 和 9.4.21发布! 2019-02-14,PostgreSQL全球开发小组发布了所有支持的数据库系统的版本更新,包括11.2、10.7、9.6.12、9.5.16 和 9.4.21版本。此次版本改变了PostgreSQL与系统函数fsync()的交互处理方式,修正了分区表的功能,以及用户近三个月所上报的超过70个Bug。 建议用户在下次的规划停机时,对系统进行升级。 ### 重点提示: 对fsync()系统内核函数交互方式的改变 缺省配置下,如果操作系统有fsync()函数并且配置为可以使用的情况下,PostgreSQL会使用此函数来帮助确保数据写入磁盘。在一些提供fsync()函数的操作系统中,当系统在不能写入数据时,它会返回失败标志并且从它的数据缓冲区中清除应写入磁盘的数据。 在这种情况下,这个清除的操作对PostgreSQL有一个不好的副作用:如果PostgreSQL通过再次调用fsync()函数,试着再次写入数据,此时fsync()会报告写入成功,但PostgreSQL认为应存入磁盘的数据实际上并未写入磁盘。这样就会造成数据损坏的结果。 本次更新修改了PostgreSQL处理fsync()返回失败标识的方式:PostgreSQL将不再调用fsync()函数,而是发出PANIC级的报警。在这种情况下,PostgreSQL也可以从WAL日志中重新加载数据来帮助确保数据写入磁盘。 这种处理方式看起来不是最佳的解决方案,不过根据反馈报告,这个问题的发生也是极其少见的。 现在系统中增加一个新的服务器参数data\_sync\_retry来配置新的处理方式。如果用户确认操作系统在此种场景下不会清理脏数据,用户可以设置data\_sync\_retry为on来保持以前的处理方式。 ### BUG修正和改进 本次更新也引入了有关发布声明如何组织的变更。对本次更新,所有仍在支持的版本将仅含有当前大版本有关的发布内容。比如PostgreSQL 11的发布声明将仅包含11.2,11.1和11.0有关的内容。对不再支持的版本(如PostgreSQL 9.3及更早的版本)的发布声明,也会在即将上线的PostgreSQL网站归档文件中可以找到。 本次更新修正了近几个月所上报的Bug。部分Bug仅影响11版本,但大部分都对目前在支持的版本有影响。 这些修正包括: - 修正分区表中包含INCLUDE选项的唯一索引中的问题; - 确保分区表中NOT NULL的约束在其所属的分区中产生作用; - 几处有关分区表约束的修正; - 修正在对分区表或是继承表在应用ON COMMIT DROP 和ON COMMIT DELETE ROWS 操作时产生的问题; - 禁止COPY FREEZE应用于分区表; - 几处有关ALTER TABLE .. ADD COLUMN 在带有非空的缺省值定义的修正,包括可能的索引出错; - 几处有关GIN索引的修正,包括避免VACUUM和并发索引可能产生的死锁; - 修正在使用表达式索引和断言的逻辑复制时可能产生的宕机问题; - 几处有关WAL日志的修正; - 修正在UPDATE中含有多个SET选项的子查询场景下可能造成的宕机现象; - 修正当没有数据提交给json[b]\_populate\_recordset() 或是 json[b]\_to\_recordset() 函数时可能造成的宕机; - 几处有关字符集处理的修正,包括在CALL调用时使用与字符集相关表达式的参数解析处理; - 几处有关查询规划器的修正,包括对处理较大的继承表和分区表的规划速度的提升; - 几处对TRUNCATE操作处理; - 确保ALTER TABLE ONLY ADD COLUMN IF NOT EXISTS正确地处理; - 允许对热备模式的UNLISTEN操作; - 修正在pg\_hba\.conf参数文件中,对LDAP授权有关的按空格区隔主机名的列表解析处理; - 几处对ecpg模块的修正; - 几处对psql的修正,包括使用COPY TO STDOUT 时增加\g target 选项; - 现在对pgbench指定--random-seed=N选项后,随机数的生成是平台独立并且结果是可确定的; - 修正pg\_basebackup 和 pg\_verify\_checksums指令处理中的问题,来适当地忽略临时文件; - 几处有关pg\_dump的修正,包括对含ALTER INDEX SET STATISTICS指令的处理; - 防止contrib/amcheck模块中,因在线数据压缩时可能造成的错误索引报警; - 支持新的Makefile变量来帮助编译扩展模块; 本次更新也包含2018i版本的时区数据,包括哈萨克斯坦、梅特拉卡特拉、圣多美和普林西比时区的更新。哈萨克斯坦的克孜勒奥尔达区现分为两部分,因此系统中也增加了一个新区Asia/Qostanay,加上对中国香港和一些太平洋岛屿历史数据的更新。 ### 系统更新 所有PostgreSQL的更新版本是累进方式的。对一般小版本的更新,并不需要用户对数据进行导出和导入或是使用pg\_upgrade进行更新,只需要停止PostgreSQL服务,更新一下服务器的二进制文件即可。 用户跳过了一个或是多个补丁版本可能也需要额外的后续操作,请浏览详细的发布说明来检查更早版本升级的细节。 PostgreSQL 9.4版本将会在2020年2月13号以后不再进行更新,请浏览以下的版本策略了解更多信息。 ### 相关链接 * [下载](https://www.postgresql.org/download/) * [产品发布详细新闻](https://www.postgresql.org/docs/current/release.html) * [安全说明页面](https://www.postgresql.org/support/security/) * [版本策略](https://www.postgresql.org/support/versioning/) * [Twitter](https://twitter.com/postgresql)
© 2010 PostgreSQL中文社区