首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Postgres小版本升级

Postgres小版本升级
EN

Database Administration用户
提问于 2017-10-30 17:26:50
回答 3查看 12.1K关注 0票数 3

在linux (Centos)上执行postgres的次要版本升级的推荐方法是什么?我正在考虑从9.5.4升级到9.5.5。

EN

回答 3

Database Administration用户

回答已采纳

发布于 2017-10-30 17:30:50

只需在Linux上执行dist-upgrade等操作,或在Windows/OSX上安装较新的版本。次要版本确保与数据目录(堆和索引)完全兼容。

当然,在升级过程中,您必须停止数据库。

来自版本控制的官方文档

次要版本是通过增加版本号的最后一部分来编号的。从版本10开始,这是版本号的第二部分,例如10.0到10.1;对于旧版本,这是版本号的第三部分,例如9.5.3至9.5.4。PostgreSQL团队只在次要版本中添加bug修复。所有用户都应该尽快升级到最新的小版本。虽然升级总是有一些风险,但PostgreSQL次要版本只修复经常遇到的、安全性和数据损坏的bug,以减少升级的风险。社会人士认为升级比升级风险更大。

因此,从本质上说,PostgreSQL是如此保守,以至于只有当不升级的风险大于升级时,才会发布较小的版本号升级。我在PostgreSQL公司工作了大约15年。我不做任何额外的备份,也不采取任何特别的预防措施,当做轻微的升级。不是说你不能--就连医生也说他们带着“一些风险”。

票数 5
EN

Database Administration用户

发布于 2017-10-30 18:37:41

简而言之,Postgres安装(也称为集群)的小升级相当简单:

  • 停止群集
  • 用新版本替换Postgres二进制文件(这里的细节可能有所不同,取决于操作系统和口味)
  • 重新启动集群

对于一个生产系统和一个更加谨慎的DBA,还有两件事:

  • 升级前可以进行备份。
  • 在执行升级之前,必须阅读发行说明。有时,即使是轻微的升级也需要额外的步骤。有时候它是重建一些索引,有时是一些奇怪的东西,等等。很多时候,你不需要做任何额外的事情,但是阅读这些注释是非常重要的,因为当需要做一些额外的工作时,它是为了防止一些错误不被修复,或者防止一些损坏等等。如果你想升级(例如)从9.5.4升级到9.5.9,你也需要阅读所有的中间版本注释(9.5.5,9.5.6,9.5.7,9.5.8,9.5.9)。关于具体的9.5.5说明,见下文。

因此,这些步骤是:

  • 阅读发布说明并相应地修改程序
  • 停止所有连接,防止新连接
  • 进行备份(使用pg_basebackup的整个集群或使用pg_dump的每个数据库)
  • 停止群集
  • 用新版本替换Postgres二进制文件
  • 重新启动集群

如果涉及到复制,您也必须考虑到这一点:

对于一个生产系统和一个更加小心的DBA,可以在升级之前进行备份:

  • 停止所有连接,防止新连接
  • 等待所有副本捕获up并进行备份
  • 停止所有集群(主机和副本)
  • 用新版本替换Postgres二进制文件(在每个集群中)
  • 重新启动所有集群

这种情况下的一个变化是,如果我们停止一个或多个副本并使用旧的二进制文件,则可以跳过备份。如果出于任何原因,我们需要回到旧的小版本,我们可以推广该副本的主人。

例如,对于特定的9.5.5版本,发布说明说:

E.5.发布日期: 2016-10-27这个版本包含了9.5.4中的各种修正。有关9.5主要版本中的新特性的信息,请参阅E.10节。E.5.1.运行9.5.X的用户不需要迁移到9.5.5版本的转储/恢复。但是,如果您的安装受到了下面第一个changelog条目中描述的错误的影响,那么在更新之后,您可能需要采取行动修复损坏的空闲空间地图。另外,如果您正在从9.5.2之前的版本升级,请参见E.8节。

因此,我们也需要阅读第一个变更:

E.5.2.更改Fix截断关系空闲空间映射和可见性映射(Pavan Deolasee,Heikki Linnakangas)这些文件可能在崩溃恢复期间不能正确恢复,或者在备用服务器上写入错误。自由空间映射中的虚假条目可能导致尝试访问已被截断的与关系本身无关的页面,通常会产生像"could not read block XXX: read only 0 of 8192 bytes"这样的错误。如果启用了校验和,则还可能出现可见性映射中的校验和失败。在https://wiki.postgresql.org/wiki/Free_空格_地图_问题上讨论了确定是否存在问题并修复该问题的过程。

因此,从9.5.4移到9.5.5并不需要转储/还原,您只需要检查这个特定的问题。检查您的错误日志,您就可以开始了;)

票数 4
EN

Database Administration用户

发布于 2020-11-22 19:54:56

代码语言:javascript
复制
yum update  postgresql-version
票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/189684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档