使用参数组 - Amazon Aurora
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

使用参数组

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

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

重要

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

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

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

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

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

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

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

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

  • 数据库参数是静态的,也可以是动态的。更改静态参数并保存数据库参数组时,参数更改将在手动重启数据库实例后生效。您可以使用 RDS 控制台通过调用 reboot-db-instance CLI 命令或 RebootDBInstance API 操作来重启数据库实例。在静态参数更改后重启关联的数据库实例的要求可帮助缓解影响 API 调用的参数误配置的风险,例如调用 ModifyDBInstance 来更改数据库实例类或扩展存储。

    当您更改动态参数并保存数据库参数组时,无论 Apply Immediately(立即应用)如何设置,更改都会立即应用于参数组。如果使用 Amazon CLI 或 RDS API 中的 pending-reboot 设置,更改仍会立即应用于参数组。不过,将参数更改应用于使用参数组的数据库实例,需要重新启动才能生效。

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

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

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

    要确定是否必须重启数据库集群的主数据库实例才能应用更改,请运行以下 Amazon 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 全局数据库的所有集群的时区和字符集使用相同设置。

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