我如何修复卡在不兼容参数状态的 Amazon RDS 数据库实例?

1 分钟阅读
0

我的 Amazon Relational Database Service(Amazon RDS)实例卡在了不兼容参数状态。我无法连接到数据库实例或对其进行修改。我只能删除实例或重启。我该如何解决此问题?

简述

如果 Amazon RDS 数据库实例处于不兼容参数状态,意味着关联组中至少有一个参数设置的值与当前引擎版本或数据库实例类不兼容。

这可能由以下原因导致:

  • 数据库实例被扩展,使用的实例类型的可用内存比前一个类型少。关联参数组中至少有一个内存设置超过了当前数据库实例的可用内存大小。
  • 某个数据库引擎被升级到其他版本。该引擎不再与当前自定义参数组的一个或多个参数设置兼容。

如果您尝试关联不同的参数组、扩展数据库实例类型、更改引擎版本或修改数据库实例配置,配置可能会失败。要接受新配置,数据库实例必须处于可用状态。如果数据库实例处于不兼容参数状态,您只能重启或将它删除。

有关如何确定哪些值不兼容的信息,请参阅我如何确定哪些 Amazon RDS 数据库参数在自定义参数组中,哪些参数在默认参数组中?

解决方法

Amazon RDS 不会直接确定和提供附加到 Amazon RDS 的参数组中导致不兼容参数状态的不兼容参数。此状态是终端状态,需要您修复不兼容的参数。要解决此问题,使用以下选项之一将每个不兼容参数的值更改为兼容值:

  • 将参数组中的所有参数重置为默认值。
  • 重置不兼容的参数的值。

**注意:**这些值的改变会影响所有与不兼容参数组关联的数据库实例。要备份当前参数组设置,在重置参数之前复制参数组。

要确定问题的根本原因,复制不兼容的参数组,然后比较自定义参数值和默认值之间的差异。例如,max_connections 是一个系统默认值。如果您与默认参数组进行比较的自定义参数组具有为 max_connections 参数设置的自定义值,您会看到此参数的默认值和自定义值,对它们之间的差异进行比较。

注意: 将自定义参数组与默认参数组进行比较时,您在“默认参数”组下只会看到系统默认参数的默认值。引擎默认参数的默认值不会显示,因为引擎默认参数值特定于 RDS 的引擎版本和配置设置。

您可以使用 AWS CloudTrail 检查自定义参数组发生的更改。筛选过去 90 天内 ModifyDBParameterGroupModifyDBClusterParameterGroup事件名称

使用 Amazon RDS 控制台创建参数组副本

  1. 打开 Amazon RDS 控制台,然后从导航窗格中选择参数组
  2. 选择不兼容的参数组,然后选择参数组操作
  3. 选择复制

使用 Amazon RDS 控制台将参数组中的所有参数重置为默认值

  1. 打开 Amazon RDS 控制台,然后从导航窗格中选择参数组
  2. 选择要重置的参数组。
  3. 选择参数组操作,然后选择重置
  4. 选择重置

使用 Amazon RDS 控制台重置参数值

要避免重置不兼容参数组的所有参数值,您可以选择要更改哪些参数。您可以通过在 Amazon RDS 控制台中编辑不兼容的参数组来实现此目的。

  1. 打开 Amazon RDS 控制台,然后从导航窗格中选择参数组
  2. 选择不兼容的参数组(要重置所有参数,选择所有参数)。
  3. 选择参数组操作,然后选择编辑
  4. 输入有效的参数值,然后选择保存更改
  5. 不进行失效转移,重启数据库实例来应用新设置。
    **注意:**Amazon RDS 控制台允许您将参数更改为任何相关的允许值。AWS 命令行界面(AWS CLI)允许您将目标参数重置为默认值。使用 AWS CLI 将参数值更改为默认参数值以外的值不会发生作用。

有关与 Amazon RDS 不兼容的 Oracle 参数的更多信息,请参阅管理您的 RDS for Oracle 数据库实例为 Oracle 数据库实例使用 HugePages


相关信息

Viewing Amazon RDS DB instance status

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