使用参数组 - Amazon Relational Database Service

使用参数组

数据库参数指定数据库的配置方式。例如,数据库参数可以指定要分配给数据库的资源量(如内存)。

您可以通过将数据库实例和多可用区 数据库集群与参数组进行关联来管理数据库配置。Amazon RDS 使用默认设置定义参数组。

重要

您可以使用自定义设置定义您自己的参数组。然后,您可以修改数据库实例和多可用区 数据库集群来使用您自己的参数组。

有关修改数据库实例的信息,请参阅修改 Amazon RDS 数据库实例。有关修改多可用区数据库集群的信息,请参阅 修改多可用区数据库集群

注意

某些数据库引擎提供了附加功能,您可以将这些功能作为选项组中的选项添加到数据库中。有关选项组的信息,请参阅使用选项组

数据库参数组就像是引擎配置值的容器,这些值可应用于一个或多个数据库实例。

数据库集群参数组仅适用于多可用区数据库集群。在多可用区数据库集群中,数据库集群参数组中的设置用于集群中的所有数据库实例。数据库引擎和数据库引擎版本的默认数据库参数组用于数据库集群中的每个数据库实例。

如果创建的数据库实例未指定数据库参数组,数据库实例将使用默认的数据库参数组。同样,如果您在创建多可用区 数据库集群时未指定数据库集群参数组,数据库集群将使用默认数据库集群参数组。每个默认参数组包含数据库引擎默认值和 Amazon RDS 系统默认值,具体根据引擎、计算等级及实例的分配存储空间而定。默认参数组的参数设置无法修改。您可以创建在其中选择您自己的参数设置的您自己的参数组。并非所有数据库引擎参数都可在您创建的参数组中进行更改。

要使用自己的参数组,您需要创建新参数组,然后修改需要修改的参数。然后,修改数据库实例或数据库集群来使用新参数组。如果您更新了数据库参数组内的参数,更改将应用于与该参数组关联的所有数据库实例。同样,如果您更新了多可用区 数据库参数组内的参数,更改将应用于与该数据库集群参数组关联的所有 Aurora 集群。

您还可使用 AWS CLI copy-db-parameter-group 命令复制现有数据库参数组。您还可以使用 AWS CLI copy-db-cluster-parameter-group 命令复制现有数据库集群参数组。如果您希望在新数据库参数组内包含大多数现有数据库参数组的自定义参数和值,复制参数组可能很方便。

以下是使用参数组中参数的几个要点:

  • 数据库实例参数是静态的,也可以是动态的。更改静态参数并保存数据库参数组时,参数更改将在手动重启关联的数据库实例后生效。

    当您更改动态参数时,默认情况下,参数更改将立即应用于数据库实例,而无需重启。要将参数更改推迟到重启关联的数据库实例之后,请使用 AWS CLI 或 RDS API,然后将 ApplyMethod 设置为 pending-reboot 以进行参数更改。

    当您使用 AWS Management Console 更改数据库实例参数值时,对于动态参数,它始终使用 immediate 作为 ApplyMethod。对于静态参数,AWS Management Console 始终使用 pending-reboot 作为 ApplyMethod

    有关使用 AWS CLI 更改参数值的更多信息,请参阅 modify-db-parameter-group。有关使用 RDS API 更改参数值的更多信息,请参阅 ModifyDBParameterGroup

    注意

    pending-reboot 与 AWS CLI 中的参数或 RDS for SQL Server 数据库实例上的 RDS API 搭配使用,会产生错误。在 RDS for SQL Server 上使用 apply-immediately

  • 数据库集群参数是静态的,也可以是动态的。更改静态参数并保存数据库集群参数组时,参数更改将在手动重启关联数据库集群后生效。

    当您更改动态参数时,默认情况下,参数更改将立即应用于数据库集群,而无需重启。要将参数更改推迟到重启关联的数据库集群之后,请使用 AWS CLI 或 RDS API,然后将 ApplyMethod 设置为 pending-reboot 以进行参数更改。

    当您使用 AWS Management Console 更改数据库集群参数值时,对于动态参数,它始终使用 immediate 作为 ApplyMethod。对于静态参数,AWS Management Console 始终使用 pending-reboot 作为 ApplyMethod

    有关使用 AWS CLI 更改参数值的更多信息,请参阅 modify-db-cluster-parameter-group。有关使用 RDS API 更改参数值的更多信息,请参阅 ModifyDBClusterParameterGroup

  • 如果数据库实例未使用对其关联的数据库参数组所做的最新更改,则 AWS Management Console 将显示状态为 pending-reboot 的数据库参数组。pending-reboot 参数组状态不会在下一个维护时段期间导致自动重启。要向该数据库实例应用最新的参数更改,请手动重启数据库实例。

  • 将新数据库参数组关联到数据库实例时,修改后的静态和动态参数仅在数据库实例重新启动后得到应用。但是,如果修改新关联的数据库参数组中的动态参数,这些更改将立即得到应用,而无需重新启动。有关更改数据库集群参数组的信息,请参阅 修改 Amazon RDS 数据库实例

  • 更改与多可用区数据库集群关联的数据库集群参数组后,重启数据库集群,以将更改应用于数据库集群中的所有数据库实例。

    有关重启多可用区数据库集群的更多信息,请参阅 重启多可用区数据库集群和读取器数据库实例

  • 在许可情况下,您可以使用表达式、公式和函数指定整数和布尔参数值。函数可以包含数学对数表达式。但是,并非所有参数都支持对参数值使用表达式、公式和函数。有关更多信息,请参阅指定数据库参数

  • 在创建数据库实例或多可用区数据库集群以及在其中创建数据库之前,在参数组中设置与字符集或数据库排序规则相关的任何参数。这将确保默认数据库以及新数据库使用您指定的字符集和排序规则值。如果您更改字符集或排序规则参数,则参数更改不会应用于现有数据库。

    对于某些数据库引擎,您可使用 ALTER DATABASE 命令更改现有数据库的字符集或排序规则值,例如:

    ALTER DATABASE database_name CHARACTER SET character_set_name COLLATE collation;

    有关更改数据库字符集或排序规则值的更多信息,请查阅数据库引擎文档。

  • 在参数组内设置参数不恰当可能会产生意外的不利影响,包括性能降低和系统不稳定。修改数据库参数时应始终保持谨慎,且在修改参数组前备份数据。将参数组更改应用于生产数据库实例或数据库集群前,请在测试数据库实例或数据库集群上试用这些参数组设置更改。

  • 要确定数据库引擎支持的参数,您可以查看数据库实例或数据库集群使用的数据库参数组和数据库集群参数组中的参数。有关更多信息,请参阅 查看数据库参数组的参数值查看数据库集群参数组的参数值