PG中文社区 / PostgreSQL 10.4发布声明
mdi-home
首页
社区新闻
中文文档
加入ACE
相关资料
mdi-chevron-down
{{ item.text }}
登录
mdi-home
首页
mdi-chat-processing
社区新闻
mdi-book-open-variant
中文文档
mdi-account-multiple-check
加入ACE
mdi-file-multiple-outline
相关资料
mdi-blank
{{item.text}}
mdi-exit-to-app
退出账号
首页 --> PostgreSQL 10.4更新版本发布说明
2018-05-10 23:31:54+08 发布
... 翻译:
doudou586
2018-05-10,PostgreSQL全球开发小组发布了所有支持的数据库系统的版本更新,包括10.4,9.6.9,9.5.13,9.4.18和9.3.23版本。 此次的版本发布是解决一个安全问题以及用户近三个所上报的Bug。用户应计划在下一次停机时进行系统升级。 请浏览"系统更新"段落来了解在安装后,应执行的步骤来对安全漏洞以及“不正确的函数非稳态和并行安全标记”的问题的修正。 请注意,PostgreSQL自10.0版本以后,采用了新的版本策略,所以从10.0,10.1,10.2,10.3向10.4升级只算是一个微小的版本升级。 ## 安全问题 这个版本中一个安装漏洞已被修正: CVE-2018-1115: 在pg\_logfile\_rotate()函数中有过于宽松的权限控制 请浏览以下的“系统更新”段落了解安装后应执行的步骤。 ## BUG修正和改进 本次更新修正了近三个所上报的超过50个Bug。部分Bug仅影响10版本,但大部分都对目前在支持的版本有影响。 这些修正包括: - 在几个内置函数中修正“不正确的函数非稳态和并行安全标记”的问题,以确保正确的查询优化; - 几处有关分区的修正,包括潜在的宕机以及允许布尔值TRUE 和 FALSE 作为分区边界; - 修正当一条记录值可以标记为dead-but-not-yet-vacuumed(已呆死但还未清除)的 TOAST OID,这样会导致类似“unexpected chunk number 0 (expected 1) for toast value nnnnn"的错误提示; - 修正"CREATE TABLE ... LIKE"在32位平台上使用bigint identity 列的问题; - 修正一个查询在重复执行hash join时的内存泄漏; - 几处使用GROUPING SET的查询可能引起宕机的问题; - 在提交一个预处理的事务时,避免当一个”查询取消“或是”会话强制终止“的中断导致的问题; - 在autovacuum自动清理进程的计划中减少锁定,以防止潜在的进程并发操作的失效; - 修正可能的REFRESH MATERIALIZED VIEW CONCURRENTLY (并发刷新物化视图)的低效执行; - 几处使用"index-only"扫描的查询规划更新; - 在使用SERIALIZABLE或是REPEATABLE READ的事务模式下并发执行CREATE INDEX CONCURRENTLY指令时的更新,以避免死锁的发生; - 几处对SP-GiST 索引的修正,包括TEXT字段列的搜索时的内码自适应; - 修正几处有关GiST, SP-GiST 和 Bloom 索引的分区表对记录记数的处理; - 几处有关逻辑解码和复制的更新; - 修正在导出时,几处对使用列表值类型的GUC变量的不合适的引用,包括local\_preload\_libraries, session\_preload\_libraries, shared\_preload\_libraries, temp\_tabl espaces; - 几处对 pg\_stat\_activity的更新; - 几处对ecpg的更新; - 修正pg\_recvlogical,以保证与PostgreSQL 10以下版本的兼容性; - 几处有关pg_rewind的更新; 本次更新也包含2018d版本的时区数据,包括对Palestine 和Antarctica时区的更新,加上对Portugal及其殖民属地历史数据的更新,也包括Enderbury, Jamaica, Turks & Caicos Islands 和Uruguay。 ## 系统更新 所有PostgreSQL的更新版本是累进方式的。对一般小版本的更新,并不需要用户对数据进行导出和导入或是使用pg_upgrade进行更新(不过对这次更新,用户需要浏览下面有关"volatility 和 parallel-safety 函数标记的段落操作"),只需要停止PostgreSQL服务,更新一下服务器的二进制文件即可。 用户跳过了一个或是多个补丁版本可能也需要额外的后续操作,请浏览详细的发布说明来检查更早版本升级的细节。 ## 安装后处理CVE-2018-1115问题的步骤 如果你在PostgreSQL 9.6或是10版本安装了"adminpack"扩展,你需要使用数据库管理员的权限在所有安装了“adminpack”扩展的数据库,运行以下指令: ``` ALTER EXTENSION adminpack UPDATE; ``` ## 安装后对 MARKINGS 功能的处理步骤 ### 应标记为"volatile"状态的函数 - cursor\_to\_xml - cursor\_to\_xmlschema - query\_to\_xml - query\_to\_xml\_and\_xmlschema - query\_to\_xmlschema ### 应标记为"parallel-unsafe"状态的函数 - binary\_upgrade\_create\_empty\_extension - brin\_desummarize_range - brin\_summarize\_new_values - brin\_summarize\_range - cursor\_to\_xml - cursor\_to\_xmlschema - gin\_clean\_pending\_list - pg\_import\_system\_collations - ts\_rewrite - ts\_stat 如你使用上述任何函数,你需要按下述方法更新他们的标记状态: - 方法1: 在每一个数据库中的pg\_proc表中,手工在更新函数的标记内容。你可以使用数据库管理员权限,通过执行以内容实现目的: ``` /* 应标记为 "volatile" 状态的函数 */ ALTER FUNCTION pg_catalog.cursor_to_xml(refcursor, int, boolean, boolean, text) VOLATILE; ALTER FUNCTION pg_catalog.cursor_to_xmlschema(refcursor, boolean, boolean, text) VOLATILE; ALTER FUNCTION pg_catalog.query_to_xml(text, boolean, boolean, text) VOLATILE; ALTER FUNCTION pg_catalog.query_to_xml_and_xmlschema(text, boolean, boolean, text) VOLATILE; ALTER FUNCTION pg_catalog.query_to_xmlschema(text, boolean, boolean, text) VOLATILE; /* 应标记为 "parallel-unsafe" 状态的函数 */ ALTER FUNCTION pg_catalog.binary_upgrade_create_empty_extension(text, text, bool, text, _oid, _text, _text) PARALLEL UNSAFE; ALTER FUNCTION pg_catalog.brin_desummarize_range(regclass, bigint) PARALLEL UNSAFE; ALTER FUNCTION pg_catalog.brin_summarize_new_values(regclass) PARALLEL UNSAFE; ALTER FUNCTION pg_catalog.brin_summarize_range(regclass, bigint) PARALLEL UNSAFE; ALTER FUNCTION pg_catalog.cursor_to_xml(refcursor, int, boolean, boolean, text) PARALLEL UNSAFE; ALTER FUNCTION pg_catalog.cursor_to_xmlschema(refcursor, boolean, boolean, text) PARALLEL UNSAFE; ALTER FUNCTION pg_catalog.gin_clean_pending_list(regclass) PARALLEL UNSAFE; ALTER FUNCTION pg_catalog.pg_import_system_collations(regnamespace) PARALLEL UNSAFE; ALTER FUNCTION pg_catalog.ts_rewrite(tsquery, text) PARALLEL UNSAFE; ALTER FUNCTION pg_catalog.ts_stat(text) PARALLEL UNSAFE; ALTER FUNCTION pg_catalog.ts_stat(text, text) PARALLEL UNSAFE; ``` - 方法2 : 运行pg\_upgrade至一个含有标记更新的版本(比如10.4版本或以上)。 ## 相关链接 - 下载: https://www.postgresql.org/download/ - 发布声明的详细文档: https://www.postgresql.org/docs/current/static/release.html - 安全说明页面: https://www.postgresql.org/support/security/ - 版本策略页面: https://www.postgresql.org/support/versioning/ - 关注我们Twitter的帐号 @postgresql : https://twitter.com/postgresql
加入我们
QQ群1:5276420
QQ群2:3336901
QQ群3:254622631
文档群:150657323
文档翻译平台:
按此访问
社区邮件列表:
按此订阅
商业支持
成都文武信息技术有限公司
杭州乘数科技有限公司
阿里云
华为云
青云(北京优帆科技有限公司)
扫码关注
加入我们
QQ群1:5276420
QQ群2:3336901
QQ群3:254622631
文档群:150657323
文档翻译平台:
按此访问
社区邮件列表:
按此订阅
商业支持
成都文武信息技术有限公司
杭州乘数科技有限公司
阿里云
华为云
青云(北京优帆科技有限公司)
扫码关注
© PostgreSQL中文社区 ... (自2010年起)