如何解决 Amazon RDS 数据库处于不兼容网络状态的问题?

上次更新日期:2022 年 11 月 9 日

我的 Amazon Relational Database Service (Amazon RDS) 数据库实例处于不兼容网络状态。这意味着什么,我该如何解决?

简短描述

不兼容网络状态表示以下一种或多种情况适用于 Amazon RDS 数据库实例:

  • 启动 Amazon RDS 数据库数据库实例的子网中没有可用的 IP 地址。
  • Amazon RDS 数据库子网组中提到的子网在 Amazon Virtual Private Cloud (Amazon VPC) 中不再存在。
  • RDS 数据库实例可公开访问,但 DNS 主机名和 DNS 解析选项已关闭。必须同时开启这两个选项才能使 RDS 数据库实例可公开访问。
  • 您已达到正在使用的 AWS 区域中的弹性网络接口的服务配额,因而必须请求提高服务配额
  • 在实例停止时删除了 RDS 数据库实例的原始弹性网络接口。RDS 数据库实例重新启动后,未找到弹性网络接口。

RDS 数据库实例的不兼容网络状态可能是执行以下操作之一的结果:

  • 修改 RDS 数据库实例的类。
  • 修改 RDS 数据库实例以使用多可用区部署。
  • 由于维护事件而更换主机。
  • 启动替换 RDS 数据库实例。
  • 在达到弹性网络接口配额后创建新的 RDS 数据库实例。
  • 从快照备份还原。
  • 启动已停止的 RDS 数据库实例。

有关 RDS 数据库实例处于不兼容网络状态的原因的更多详细信息,请参阅查看 Amazon RDS 事件

解决方法

不兼容网络状态意味着 Amazon RDS 数据库实例可能仍可在数据库级别访问,但您无法修改或重新引导该实例。最佳做法是备份备份(快照或逻辑),以防您的 RDS 数据库实例进入不兼容的网络状态。备份允许您将数据还原到另一个 RDS 数据库实例。

  1. 打开 Amazon RDS 控制台,然后从导航窗格中选择 Databases(数据库)。
  2. 选择处于不兼容网络状态的 RDS 数据库实例,然后记下连接与安全窗格中的 VPC ID 和子网 ID。
  3. 打开 Amazon VPC 控制台,然后从导航窗格中选择您的 VPC
  4. 选择之前记下的 VPC,依次选择操作编辑 DNS 主机名。如果未开启 DNS 主机名,则选中启用复选框。
  5. 您的 VPC,选择之前记下的 VPC,依次选择操作编辑 DNS 解析。如果未开启 DNS 解析,则选中 enable(启用)复选框。
  6. 在导航窗格中,选择 Subnets(子网)。确认已列出之前在 RDS 数据库实例详细信息部分中注明的所有子网并具有可用的 IP 地址。
  7. 打开 Amazon Elastic Compute Cloud (Amazon EC2) 控制台,然后确认您没有达到弹性网络接口的配额。如果需要,请求提高服务配额
    注意:有关每个 AWS 区域的网络接口配额的更多信息,请参阅网络接口

注意:如果 RDS 在以下情况下无法分配您的 IP 地址,则您的实例将处于不兼容网络状态:

  1. 您将在 AWS Outposts 上使用 Amazon RDS。
  2. 您激活客户拥有的 IP (CoIP) 地址设置。

要修复处于不兼容网络状态的 RDS 数据库实例,请验证您是否已开启了 RDS 数据库实例的自动备份。如果您确实开启了自动备份,请暂时停止对数据库的任何写入并执行时间点故障恢复(PITR)

如果您没有开启自动备份,请创建一个新的 RDS 数据库实例。然后,使用 AWS Database Migration Service (AWS DMS) 或使用备份和恢复工具迁移数据。例如,mysqldump、pg_dump、expdp /impdp。

重要提示:实例进入不兼容网络状态后,可能无法在数据库级别访问 RDS 数据库实例以执行逻辑备份。