简体   繁体   English

无法将 Aurora RDS Postgres 版本从 12 升级到 13

[英]Can not upgrade Aurora RDS Postgres version from 12 to 13

I am trying to upgrade Aurora RDS Postgres cluster db.r5.xlarge from version 12.7 to 13.3.我正在尝试将 Aurora RDS Postgres 集群 db.r5.xlarge 从版本 12.7 升级到 13.3。 I choose Engine version 13.3, default DB cluster parameter group and DB parameter group default.aurora-postgresql13 and choose 'Apply immediately'.我选择引擎版本 13.3、默认数据库集群参数组和数据库参数组 default.aurora-postgresql13,然后选择“立即应用”。

Received error message:收到错误信息:

We're sorry, your request to modify DB cluster clone-cluster has failed.很抱歉,您修改数据库集群 clone-cluster 的请求失败。 Cannot modify engine version because instance clone-cluster is running on an old configuration.无法修改引擎版本,因为实例克隆集群正在旧配置上运行。 Apply any pending maintenance actions on the instance before proceeding with the upgrade在继续升级之前对实例应用任何待处理的维护操作

There are no any pending maintenance actions showing in AWS RDS console and I have no idea what configuration they mean. AWS RDS 控制台中没有显示任何待处理的维护操作,我不知道它们意味着什么配置。

We are on a free basic support plan no so we cannot get help from AWS.我们使用的是免费的基本支持计划,因此我们无法从 AWS 获得帮助。 Can anyone please suggest if there's a way to upgrade the whole cluster at once?任何人都可以建议是否有一种方法可以一次升级整个集群?

I had this issue and contacted AWS support.我遇到了这个问题并联系了 AWS 支持。 They said it is a known issue for (some, or all) db.t3 instance types.他们说这是(部分或全部)db.t3 实例类型的已知问题。 In my case I was using db.t3.medium.就我而言,我使用的是 db.t3.medium。

So the workaround is as follows:所以解决方法如下:

  • Change instance type on the cluster to r5.xlarge or db.r6g.large.将集群上的实例类型更改为 r5.xlarge 或 db.r6g.large。
  • Upgrade to PostgreSQL 13.3升级到 PostgreSQL 13.3
  • Change instance type back to db.t3.medium.将实例类型更改回 db.t3.medium。

Just to add to the other great answers, another possible reason for "old configuration" errors is attempting to upgrade from an old minor version.只是为了添加其他很好的答案,“旧配置”错误的另一个可能原因是尝试从旧的次要版本升级。

I was trying to upgrade from Postgres 12.6 directly to 13.3, which is not supported.我试图从 Postgres 12.6 直接升级到不支持的 13.3。 Instead, I had to upgrade to 12.7 first and then upgrade to 13.3.相反,我必须先升级到 12.7,然后再升级到 13.3。

It's written in the docs , but I didn't notice the minor version requirement.它写在docs中,但我没有注意到次要版本要求。

This is not correctly documented at the moment, but it is possible to check and resolve (for those of us automating the upgrade process.) The CLI aws rds describe-pending-maintenance-actions sometimes reports the status.目前没有正确记录,但可以检查和解决(对于我们这些自动化升级过程的人) aws rds describe-pending-maintenance-actions有时会报告状态。 If you know ARNs, you can filter on them, or if just a name, this seems to work:如果您知道 ARN,则可以对其进行过滤,或者如果只是一个名称,这似乎可行:

aws rds describe-pending-maintenance-actions --query 'PendingMaintenanceActions[?contains(ResourceIdentifier, `test`)`

The maintenance can be applied programmatically using apply-pending-maintenance-action .可以使用apply-pending-maintenance-action以编程方式应用维护。

However...然而...

This message also appears to occur when something about the upgrade path is invalid.当有关升级路径的某些内容无效时,也会出现此消息。 In my case, I believe the case is as follows:就我而言,我认为情况如下:

  • Source is 9.6.19 Aurora PostgreSQL来源是 9.6.19 Aurora PostgreSQL
  • Target is 10.18.目标是 10.18。 This fails.这失败了。
  • Set target to 10.14 and upgrade occurs将目标设置为 10.14 并进行升级

In short, the UI, and other information about what versions of what are compatible is incomplete.简而言之,UI 和其他关于哪些版本兼容的信息是不完整的。 I have reported this to AWS and they mostly shrugged, telling me to look at the doc.我已经向 AWS 报告了这一点,他们大多耸了耸肩,告诉我看文档。 Pffft.噗。

Hit the same issue with upgrade to a major version and here's the undocumented solution I found:升级到主要版本时遇到同样的问题,这是我发现的未记录的解决方案:

  • Select an instance from the cluster, and in the actions menu you should see Upgrade Now .从集群中选择一个实例,然后在操作菜单中您应该会看到Upgrade Now
  • Do this for each instance that is part of the cluster.对属于集群的每个实例执行此操作。
  • Modify the cluster and you should be able to upgrade to any available 13.x version.修改集群,您应该能够升级到任何可用的 13.x 版本。

Even though it is shown as the same version as the Cluster, the Upgrade now action will run configuration update on the instance itself putting it in maintenance and rebooting it.即使它显示为与集群相同的版本,“ Upgrade now ”操作也会在实例本身上运行配置更新,使其处于维护状态并重新启动它。

This one worked for me.这个对我有用。 In rds, select the server highlighted in the error message, go to "Configuration" and make sure that the "Recommendations" area is empty, otherwise, "Apply Now" the recommendation/s.在rds中,select服务器在错误消息中突出显示,go到“配置”并确保“建议”区域为空,否则,“立即应用”建议。 Once all completed, "Modify" from the Global/Regional Cluster and try to upgrade again.全部完成后,从全球/区域集群“修改”并再次尝试升级。 在此处输入图像描述

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM