跳至内容

如何对 Aurora MySQL 兼容版升级问题进行故障排除?

2 分钟阅读
0

我想对使用蓝绿部署升级我的 Amazon Aurora MySQL 兼容版数据库时遇到的错误进行故障排除。

简短描述

如果您使用蓝绿部署来升级 Aurora MySQL 兼容版数据库,则您的部署可能会显示升级状态“Invalid configuration”。要查找有关该问题的详细信息,请检查写入器实例的 Logs & Events(日志和事件)中是否显示以下消息:

“Failed to provision due to upgrade incompatibilities.”

要解决此错误,请完成以下故障排除步骤。

解决方法

为蓝绿部署做准备

要减少蓝绿部署出现的问题,请完成以下最佳实践以准备部署:

  • 查看 Aurora MySQL 版本兼容性矩阵,确保您可以通过蓝绿部署将当前版本升级到目标版本。有关详细信息,请参阅检查 Aurora MySQL 版本号
  • 评估您的应用程序在割接期间处理短暂中断的能力。您还可以在应用程序代码中实现连接重试逻辑,以帮助完成割接过程。有关详细信息,请参阅蓝绿部署的一般最佳实践
  • 查看所有配置设置,以确保您的当前版本与目标版本兼容。
  • 创建当前数据库的备份,以确保在需要时可以回滚。

执行蓝绿部署

在部署期间,完成以下任务:

  • 使用 Amazon CloudWatch 指标、Amazon EventBridge 和 Logs 来监控升级进度。
  • 如果您在同一主要版本中升级到较新的次要版本,请在绿色集群上使用就地升级功能。此功能允许您在完成割接过程之前获得最新的补丁版本。
  • 在您验证绿色环境已准备就绪且绿色集群没有副本延迟之后,请在计划的维护窗口内完成割接。

如果切换在割接期间停顿或变慢,请检查错误日志中是否存在特定的错误消息或瓶颈。您可以指定介于 30 秒到 3,600 秒(1 小时)之间的切换超时周期。如果切换时间超过指定的持续时间,则 Aurora 会回滚更改,并且不会更改任何一个环境。

**注意:**默认超时时间为 300 秒(5 分钟)。

使用替代升级方法

对于某些升级,例如从 Aurora Serverless v1 到 Aurora Serverless v2,您不能使用蓝绿部署过程。要解决此问题,请使用以下方法之一:

使用只读副本

执行以下操作:

  1. 创建 Aurora Serverless v1 集群的只读副本。
  2. 将集群的只读副本升级到 Aurora Serverless v2。
  3. 将只读副本更新为主集群。

有关详细信息,请参阅从 Aurora Serverless v1 集群升级到 Aurora Serverless v2

使用快照恢复

执行以下操作:

  1. 创建 Aurora Serverless v1 集群的快照。
  2. 将快照恢复到新的 Aurora Serverless v2 集群。
  3. 更新您的应用程序以指向新的 v2 集群。

升级后查看配置

完成集群升级后,验证所有数据库函数、存储过程和应用程序查询是否按预期运行。在升级后 24-48 小时内监控性能指标,包括高峰时段,以确保不会出现任何意外的性能影响。

其他故障排除步骤

不兼容错误

如果您当前的数据库配置使用的设置或功能与目标数据库不兼容,则会收到以下错误消息:

“Failed to provision due to upgrade incompatibilities.See https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.mysql80-upgrade-procedure.html#AuroraMySQL.mysql80-upgrade-troubleshooting to resolve these issues, then delete and recreate this Blue/Green Deployment.”

要解决此错误,请完成以下步骤:

  1. 查看 Aurora MySQL 兼容版数据库中的 upgrade-prechecks.log 文件。
  2. 解决您在日志文件中发现的所有兼容性问题。有关详细信息,请参阅社区 MySQL 升级预检查摘要Aurora MySQL 升级预检查摘要
  3. 删除蓝绿部署
  4. 重新创建蓝绿部署

参数兼容性错误

如果您的绿色集群处于 incompatible-parameters 状态且不是 Available(可用),则现有集群参数或实例参数值与目标版本不兼容。

要解决此错误,请完成以下步骤:

  1. 重置集群参数组和实例参数值

  2. 要将绿色集群升级为独立集群,请运行 promote-read-replica-db-cluster 命令:

    aws rds promote-read-replica-db-cluster --db-cluster-identifier <Green Cluster>
  3. 删除集群实例

  4. 查看现有集群的参数值与目标版本的兼容性。或者,在蓝色群集上切换到默认值。然后,在割接到绿色集群期间逐一更改参数值。

  5. 验证参数后,创建新的蓝绿环境

对停滞的升级进行故障排除

由于以下原因,您的绿色集群可能会在升级期间停滞:

  • 目标版本不兼容
  • 蓝色集群上长时间运行的事务会阻止绿色集群上的升级过程

要解决此错误,请完成以下任务:

  1. 检查升级后的版本是否支持直接升级的目标版本。
  2. 如果不支持该版本,请恢复您的更改并删除蓝绿部署。
  3. 升级到推荐的中间版本。最后,升级到最终版本。

您还可以监控您的蓝色集群中是否存在长时间运行的事务。如果有些事务运行了很长时间,请完成或终止这些事务。然后,重试升级过程。

相关信息

如何将我的 Amazon Aurora MySQL 数据库集群升级到新版本?

Upgrade to Amazon Aurora MySQL version 3 (with MySQL 8.0 compatibility)(升级到 Amazon Aurora MySQL 版本 3(兼容 MySQL 8.0))

Performing major version upgrades for Amazon Aurora MySQL with minimum downtime(以最少的停机时间为 Amazon Aurora MySQL 进行主要版本升级)

升级 Amazon Aurora MySQL 数据库集群的主要版本

AWS 官方已更新 3 个月前