PostgreSQL 11.2, 10.7, 9.6.12, 9.5.16 和 9.4.21 发布

栏目: 数据库 · PostgreSQL · 发布时间: 5年前

PostgreSQL 于情人节当天对所有受支持的数据库版本发布了更新,包括 PostgreSQL 11.2, 10.7, 9.6.12, 9.5.16 和 9.4.21 这五个不同的分支。

此版本更改了 PostgreSQL 接口与 fsync() 之间的行为,此外还包含了针对分区的修复程序,以及过去三个月内反馈的70多个其他错误。

PostgreSQL 11.2, 10.7, 9.6.12, 9.5.16 和 9.4.21 发布

下载地址 >>> https://www.postgresql.org/download/

更新亮点就是上面所提到的 PostgreSQL 接口与fsync()之间的行为变更,下面来简单看看。

当在操作系统中可用并在配置文件中启用时(默认启用),PostgreSQL 会使用内核功能 fsync() 来帮助确保将数据写入磁盘。但在某些操作系统中使用 fsync() ,当内核无法写出数据时,它会返回失败并刷新应该从其数据缓冲区写入的数据。

这种刷新操作对 PostgreSQL 有一个不幸的副作用:如果 PostgreSQL 再次尝试通过调用 fsync() 将数据写入磁盘, fsync() 将报告成功,但实际上 PostgreSQL 保存到磁盘的数据不会被写入。所以,这反映了一种可能存在的数据损坏情况。

而本次更新修改了 PostgreSQL 处理 fsync() 返回失败的方式:PostgreSQL 将不再重试调用 fsync() 。在这种情况下,PostgreSQL 然后从预写式日志 (write-ahead log, WAL) 重录数据,以帮助确保写入数据。虽然这可能看起来是次优的解决方案,但目前还没有更好的替代方案,并且根据报告,采用该方案后,这种问题极少发生。

PostgreSQL 还添加了一个新的服务器参数 data_sync_retry 来管理此行为。如果你确信你的内核在这样的情况下不会将脏数据丢弃至缓冲区,可以设置 data_sync_retryon 以恢复原来的行为。

其他的更新诸如 bug 修复和性能改进,请查看发布过公告 https://www.postgresql.org/about/news/1920/


以上所述就是小编给大家介绍的《PostgreSQL 11.2, 10.7, 9.6.12, 9.5.16 和 9.4.21 发布》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Hit Refresh

Hit Refresh

Satya Nadella、Greg Shaw / HarperBusiness / 2017-9-26 / USD 20.37

Hit Refresh is about individual change, about the transformation happening inside of Microsoft and the technology that will soon impact all of our lives—the arrival of the most exciting and disruptive......一起来看看 《Hit Refresh》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码

MD5 加密
MD5 加密

MD5 加密工具