跳至内容

为什么我在更改或扩展我的 Amazon Aurora MySQL 数据库实例的实例类时出现错误?

2 分钟阅读
0

当我尝试扩展 Amazon Aurora MySQL 兼容版数据库实例或更改实例类时,会收到错误。

简短描述

当您更改兼容 Aurora MySQL 的数据库实例的实例类时,可能会收到以下错误之一:

  • “无法修改实例类,因为当前实例的可用区中没有可用的请求类的实例。请稍后重试您的请求”
  • “找不到 aurora-mysql 的 abc 版本”
  • “RDS 不支持使用以下组合创建数据库实例”

要解决此问题,请根据您收到的错误执行以下操作。

解决方法

**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

在对错误进行故障排除之前,最佳做法是在最新的引擎版本上运行数据库集群,或使用长期支持 (LTS) 版本。较新的引擎版本提供了错误修复以提高安全性、稳定性和实例可用性。

要检查您的数据库集群版本,请打开 Amazon Relational Database Service (Amazon RDS) 控制台并检查引擎版本下的值。如果您的数据库集群在 Aurora MySQL 版本 3 上运行,请使用默认版本 3.05.2LTS 版本 3.04.1

**注意:**如果您的数据库集群在 Aurora MySQL 版本 2 上运行,则只能使用适用于 2.11 和 2.12 次要版本的 Amazon RDS 扩展支持。默认版本为 2.11.5

升级引擎版本后,在数据库集群中的实例上安装操作系统 (OS) 升级。创建 Aurora 克隆以测试数据库升级。某些 AWS 区域或可用区可能不适用于以前的实例类,例如 T2 或 R3。最佳做法是使用较新的实例类,如 T3 和 R5。

无法修改实例类

当可用区没有足够的按需容量来容纳您选择的实例类时,就会出现 Cannot modify the instance class(无法修改实例类)错误。要解决此问题,请等待几分钟,然后再次修改实例类。如果实例类在实例运行的可用区中不适用于您的 Aurora 引擎和版本,也会出现此错误。

要确定允许您的引擎、引擎版本和实例类的可用区,请运行以下 describe-orderable-db-instance-options AWS CLI 命令:

aws rds describe-orderable-db-instance-options --engine engine_name --engine-version engine_version --db-instance-class instance-class --query 'OrderableDBInstanceOptions[].AvailabilityZones'

**注意:**将 engine-name 替换为您的 Aurora 引擎,将 engine-version 替换为引擎版本,将 instance-class 替换为实例类。

找不到版本

当您使用 AWS CLI 使用已弃用或不正确的版本修改实例类时,会出现 Cannot find version(找不到版本)错误。

要获取 Aurora MySQL 数据库集群中数据库实例的版本号,请运行以下查询:

SELECT @@AURORA_VERSION;

要检查您的数据库集群引擎版本,请登录到集群,然后运行以下 describe-db-clusters 命令:

aws rds describe-db-clusters \
--db-cluster-identifier example-cluster-identifier \
--query 'DBClusters[].EngineVersion' \
--output text \
--region Region-example

**注意:**将 example-cluster-identifier 替换为您的集群标识符或 ARN,并将 Region-example 替换为您的区域。

要升级数据库集群引擎,请运行以下 apply-pending-maintenance-action 命令:

aws rds apply-pending-maintenance-action --resource-identifier example-ARN --apply-action system-update --opt-in-type immediate

**注意:**将 example-ARN 替换为数据库集群 ARN。

RDS 不支持使用以下组合创建数据库实例

如果您升级到 db.r4 实例系列,但数据库集群运行的是先前版本的 Aurora,则会收到以下错误代码:

“DBInstanceClass=db.r4.large, Engine=aurora-mysql, EngineVersion=8.0.mysql_aurora.3.05.2, LicenseModel=general-public-license”。

只能在 2.x 版本中使用 db.r4 实例系列,不能在 3.x 版本中使用。您也无法在兼容 Aurora MySQL 的版本上运行优化型读取功能实例类。如果您尝试升级到 r6gddb.r6id 实例类系列,则会收到以下错误代码:

“DBInstanceClass=db.r6gd.xlarge, Engine=aurora-mysql, EngineVersion=8.0.mysql_aurora.3.07.1, LicenseModel=general-public-license”。

如果您升级到 db.r8 实例系列,但数据库实例在先前版本的 Aurora 上运行,则会收到以下错误代码:

“DBInstanceClass=db.r8g.large, Engine=aurora-mysql, EngineVersion=8.0.mysql_aurora.3.05.2, LicenseModel=general-public-license”。

db.r8 实例系列并非在所有 Aurora 版本中都可用。例如,您只能在 Aurora 版本 3.08.0 及更高版本中使用 db.r5.8xlarge 实例类。或者,只能在 3.08.0 及更高版本上使用 db.r7i。但是,您可以在 2.12.0 及更高版本以及 3.03.1 及更高版本上使用 db.r7g

要确定允许您的引擎和实例类组合的引擎版本,请运行以下 describe-orderable-db-instance-options 命令:

aws rds describe-orderable-db-instance-options --engine example-engine --db-instance-class example-instance-class --query 'OrderableDBInstanceOptions[].EngineVersion'

**注意:**将 example-engine 替换为您的引擎,将 example-instance-class 替换为您的实例类。

相关信息

数据库实例类类型

AWS 官方已更新 7 个月前