使用参数组 - Amazon Aurora

使用参数组

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

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

重要

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

有关修改数据库集群或数据库实例的信息,请参阅 修改 Amazon Aurora 数据库集群

数据库集群参数组就像是引擎配置值的容器,这些值可应用于 Aurora 数据库集群中的每个数据库实例。例如,Aurora 共享存储模型需要 Aurora 集群中的每个数据库实例为参数(如 innodb_file_per_table)使用相同设置。因此,影响物理存储布局的参数是集群参数组的一部分。数据库集群参数组还包括所有实例级参数的默认值。

数据库参数组就像是引擎配置值的容器,这些值可应用于一个或多个数据库实例。数据库参数组对于 Amazon RDS 和 Aurora 中的数据库实例均适用。这些配置设置适用于在 Aurora 集群内的数据库实例之间可能不同的属性,如内存缓冲区的大小。

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

要使用自己的参数组,您需要创建新参数组,然后修改需要修改的参数。然后,修改数据库实例或数据库集群来使用新参数组。如果您更新了数据库参数组内的参数,更改将应用于与该参数组关联的所有数据库实例。同样,如果您更新了 Aurora 数据库参数组内的参数,更改将应用于与该数据库集群参数组关联的所有 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-cluster-parameter-group。有关使用 RDS API 更改参数值的更多信息,请参阅 ModifyDBClusterParameterGroup

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

    当您更改动态参数时,默认情况下,参数更改将立即应用于数据库实例,而无需重启。要将参数更改推迟到重启关联的数据库实例之后,请使用 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(待重启)状态。此状态不会在下一个维护时段期间导致自动重启。要向该数据库实例应用最新的参数更改,请手动重启数据库实例。

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

  • 更改与数据库集群关联的数据库集群参数组后,重启数据库集群中的数据库实例。这样做会将更改应用于数据库集群中的所有数据库实例。

    要确定是否必须重启数据库集群的数据库实例才能应用更改,请运行以下 AWS CLI 命令。

    aws rds describe-db-clusters --db-cluster-identifier db_cluster_identifier

    检查 DBClusterParameterGroupStatus 输出中主数据库实例的值。如果值为 pending-reboot,则重启数据库集群的数据库实例。

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

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

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

    ALTER DATABASE database_name CHARACTER SET character_set_name COLLATE collation;

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

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

  • 对于 Aurora 全局数据库,您可以为各个 Aurora 集群指定不同的配置设置。请确保设置足够相似,以便您在将辅助集群提升到主集群时生成一致的行为。例如,对于跨 Aurora 全局数据库的所有集群的时区和字符集使用相同设置。

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