使用数据库集群参数组 - Amazon Aurora

使用数据库集群参数组

Amazon Aurora 数据库集群使用数据库集群参数组。以下各节介绍配置和管理数据库集群参数组。

Amazon Aurora 数据库集群和数据库实例参数

Aurora 使用二级的配置设置系统:

  • 数据库集群参数组中的参数适用于数据库集群中的每个数据库实例。您的数据存储在 Aurora 共享存储子系统中。因此,与表数据的物理布局相关的所有参数对于 Aurora 集群中的所有数据库实例都必须是相同的。同样,由于 Aurora 数据库实例通过复制连接,复制设置的所有参数在整个 Aurora 集群中也必须是一致的。

  • 数据库参数组中的参数适用于 Aurora 数据库集群中的单个数据库实例。这些参数与您可以在同一个 Aurora 集群中的各个数据库实例中更改的各个方面(如内存使用率)相关。例如,集群通常包含具有不同 AWS 实例类的数据库实例。

每个 Aurora 集群与一个数据库集群参数组关联。此参数组为相应数据库引擎的每个配置值分配默认值。集群参数组还包括集群级和实例级参数的原定设置。预置或 Aurora Serverless v2 集群中的每个数据库实例都继承来自该数据库集群参数组的设置。

每个数据库实例也都与一个数据库参数组关联。数据库参数组中的值可以覆盖集群参数组中的默认值。例如,如果群集中的一个实例遇到问题,则可以为该实例分配一个自定义数据库参数组。对于与调试或性能优化相关的参数,该自定义参数组可能具有特定设置。

创建集群或新数据库实例时,Aurora 会根据指定的数据库引擎和版本分配默认参数组。您可以改为指定自定义参数组。您可以自行创建这些参数组,并可以编辑参数值。您可以在创建时指定这些自定义参数组。您还可以稍后修改数据库集群或实例以使用自定义参数组。

对于预置和 Aurora Serverless v2 实例,您在数据库集群参数组中修改的任意配置值将覆盖数据库参数组中的默认值。如果您在数据库参数组中编辑对应的值,则这些值将覆盖数据库集群参数组中的设置。

您修改的任何数据库参数设置均优先于数据库集群参数组值,即使您将配置参数更改回其默认值。您可以使用 describe-db-parameters AWS CLI 命令或 DescribeDBParameters RDS API 操作查看哪些参数被覆盖。如果您修改了该参数,Source 字段将包含值 user。若要重置一个或多个参数,以使数据库集群参数组的值优先,请使用 reset-db-parameter-group AWS CLI 命令或 ResetDBParameterGroup RDS API 操作。

Aurora 中可供您使用的数据库集群和数据库实例参数因数据库引擎兼容性而异。

注意

Aurora Serverless v1 集群只有数据库集群参数组,而没有数据库参数组。对于 Aurora Serverless v2 集群,您对数据库集群参数组中的自定义参数进行所有更改。

Aurora Serverless v2 使用数据库集群参数组和数据库参数组。使用 Aurora Serverless v2,您几乎可以修改所有配置参数。Aurora Serverless v2 覆盖某些与容量相关的配置参数的设置,以便在 Aurora Serverless v2 实例缩减的情况下不会中断工作负载。

要了解有关 Aurora Serverless 配置设置以及您可以修改哪些设置的更多信息,请参阅 使用 Aurora Serverless v2 的参数组Aurora Serverless v1 的参数组

创建数据库集群参数组

您可以使用 AWS Management Console、AWS CLI 或 RDS API 创建新数据库集群参数组。

创建数据库集群参数组之后,至少等待 5 分钟,然后创建使用该数据库集群参数组的数据库集群。这样,Amazon RDS 就可以在新数据库集群使用参数组之前完全创建此参数组。您可以使用 Amazon RDS 控制台Parameter groups(参数组)页面,或者使用 describe-db-cluster-parameters 命令,以验证是否创建了数据库集群参数组。

以下限制适用于数据库集群参数组名称:

  • 名称必须为 1 到 255 个字母、数字或连字符。

    原定设置参数组名称可以包含句点,例如 default.aurora-mysql5.7。但是,自定义参数组名称不能包含句点。

  • 第一个字符必须是字母。

  • 名称不能以连字符结束,也不能包含两个连续的连字符。

若要创建数据库集群参数组
  1. 登录 AWS Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择参数组

  3. 选择创建参数组

    将显示创建参数组窗口。

  4. 参数组系列列表中,选择一个数据库参数组系列。

  5. 类型列表中,选择数据库集群参数组​。

  6. 组名框中,输入新数据库集群参数组的名称。

  7. 描述框中,输入新数据库集群参数组的描述。

  8. 选择创建

要创建数据库集群参数组,请使用 AWS CLI create-db-cluster-parameter-group 命令。

以下示例为 Aurora MySQL 版本 5.7 创建名为 mydbclusterparametergroup 的数据库集群参数组,其说明为“我的新集群参数组”。

包括以下必需参数:

  • --db-cluster-parameter-group-name

  • --db-parameter-group-family

  • --description

要列出所有可用的参数组系列,请使用以下命令:

aws rds describe-db-engine-versions --query "DBEngineVersions[].DBParameterGroupFamily"
注意

输出包含重复项。

对于 Linux、macOS 或 Unix:

aws rds create-db-cluster-parameter-group \ --db-cluster-parameter-group-name mydbclusterparametergroup \ --db-parameter-group-family aurora-mysql5.7 \ --description "My new cluster parameter group"

对于 Windows:

aws rds create-db-cluster-parameter-group ^ --db-cluster-parameter-group-name mydbclusterparametergroup ^ --db-parameter-group-family aurora-mysql5.7 ^ --description "My new cluster parameter group"

此命令生成类似于下述信息的输出:

{ "DBClusterParameterGroup": { "DBClusterParameterGroupName": "mydbclusterparametergroup", "DBParameterGroupFamily": "aurora-mysql5.7", "Description": "My new cluster parameter group", "DBClusterParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:cluster-pg:mydbclusterparametergroup" } }

要创建数据库集群参数组,请使用 RDS API CreateDBClusterParameterGroup 操作。

包括以下必需参数:

  • DBClusterParameterGroupName

  • DBParameterGroupFamily

  • Description

关联数据库集群参数组与数据库集群

您可以使用自定义设置创建自己的数据库集群参数组。之后可以使用 AWS Management Console、AWS CLI 或 RDS API 关联数据库集群参数组与数据库集群。在创建或修改数据库集群时可以执行此操作。

有关创建数据库集群参数组的信息,请参阅创建数据库集群参数组。有关创建数据库集群的信息,请参阅创建 Amazon Aurora 数据库集群。有关修改数据库集群的信息,请参阅修改 Amazon Aurora 数据库集群

注意

对于 Aurora PostgreSQL 15.2、14.7、13.10、12.14 和所有 11 版本,当您更改与数据库集群关联的数据库集群参数组时,需重启每个副本实例以应用这些更改。

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

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

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

关联数据库集群参数组与数据库集群
  1. 登录 AWS Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择 Databases (数据库),然后选择您希望修改的数据库集群。

  3. 选择修改。此时会显示修改数据库集群页面。

  4. 更改数据库集群参数组设置。

  5. 选择继续,查看修改摘要。

    无论修改计划设置如何,系统都会立即应用更改。

  6. 在确认页面上,检查您的更改。如果更改正确无误,请选择修改集群以保存更改。

    或者,选择 Back (返回) 编辑您的更改,或者选择 Cancel (取消) 取消更改。

要关联数据库集群参数组与数据库集群,请使用 AWS CLI modify-db-cluster 命令及以下选项:

  • --db-cluster-name

  • --db-cluster-parameter-group-name

以下示例关联了 mydbclpg 数据库参数组与 mydbcluster 数据库集群。

对于 Linux、macOS 或 Unix:

aws rds modify-db-cluster \ --db-cluster-identifier mydbcluster \ --db-cluster-parameter-group-name mydbclpg

对于 Windows:

aws rds modify-db-cluster ^ --db-cluster-identifier mydbcluster ^ --db-cluster-parameter-group-name mydbclpg

要关联数据库集群参数组与数据库集群,请使用 RDS API ModifyDBCluster 操作及以下参数:

  • DBClusterIdentifier

  • DBClusterParameterGroupName

修改数据库集群参数组中的参数

您可以修改客户创建的数据库集群参数组中的参数值。您无法更改默认数据库集群参数组中的参数值。对客户创建的数据库集群参数组中的参数所做的更改将应用于与此数据库集群参数组关联的所有数据库集群。

修改数据库集群参数组
  1. 登录 AWS Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择参数组

  3. 在此列表中,选择要修改的参数组。

  4. 对于 Parameter group actions (参数组操作),选择 Edit (编辑)

  5. 更改要修改的参数的值。您可使用对话框右上方的箭头键滚动参数。

    您无法更改默认参数组中的值。

  6. 选择 Save changes(保存更改)

  7. 重启集群中的主(写入器)数据库实例以对其应用更改。

  8. 然后,重启读取器数据库实例以对其应用更改。

要修改数据库集群参数组,请使用带以下必需参数的 AWS CLI modify-db-cluster-parameter-group 命令:

  • --db-cluster-parameter-group-name

  • --parameters

以下示例修改了名为 mydbclusterparametergroup 的数据库集群参数组的 server_audit_loggingserver_audit_logs_upload 值。

对于 Linux、macOS 或 Unix:

aws rds modify-db-cluster-parameter-group \ --db-cluster-parameter-group-name mydbclusterparametergroup \ --parameters "ParameterName=server_audit_logging,ParameterValue=1,ApplyMethod=immediate" \ "ParameterName=server_audit_logs_upload,ParameterValue=1,ApplyMethod=immediate"

对于 Windows:

aws rds modify-db-cluster-parameter-group ^ --db-cluster-parameter-group-name mydbclusterparametergroup ^ --parameters "ParameterName=server_audit_logging,ParameterValue=1,ApplyMethod=immediate" ^ "ParameterName=server_audit_logs_upload,ParameterValue=1,ApplyMethod=immediate"

该命令产生类似下面的输出:

DBCLUSTERPARAMETERGROUP mydbclusterparametergroup

要修改数据库集群参数组,请使用带以下必需参数的 RDS API ModifyDBClusterParameterGroup 命令:

  • DBClusterParameterGroupName

  • Parameters

重置数据库集群参数组中的参数

您可以在客户创建的数据库集群参数组中将参数重置为其默认值。对客户创建的数据库集群参数组中的参数所做的更改将应用于与此数据库集群参数组关联的所有数据库集群。

注意

在默认数据库集群参数组中,参数始终设置为默认值。

将数据库集群参数组中的参数重置为其默认值
  1. 登录 AWS Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择参数组

  3. 在列表中,选择参数组。

  4. 对于 Parameter group actions (参数组操作),选择 Edit (编辑)

  5. 选择要重置为默认值的参数。您可使用对话框右上方的箭头键滚动参数。

    您无法重置默认参数组中的值。

  6. 选择重置,然后通过选择重置参数进行确认。

  7. 重新启动数据库集群中的主数据库实例,以将更改应用于数据库集群中的所有数据库实例。

要将数据库集群参数组中的参数重置为其默认值,请使用带以下必要选项的 AWS CLI reset-db-cluster-parameter-group 命令:--db-cluster-parameter-group-name

要重置数据库集群参数组中的所有参数,请指定 --reset-all-parameters 选项。要重置特定参数,请指定 --parameters 选项。

以下示例将名为 mydbparametergroup 的数据库参数组中的所有参数重置为其默认值。

对于 Linux、macOS 或 Unix:

aws rds reset-db-cluster-parameter-group \ --db-cluster-parameter-group-name mydbparametergroup \ --reset-all-parameters

对于 Windows:

aws rds reset-db-cluster-parameter-group ^ --db-cluster-parameter-group-name mydbparametergroup ^ --reset-all-parameters

以下示例展示了在名为 mydbclusterparametergroup 的数据库集群参数组中将 server_audit_loggingserver_audit_logs_upload 重置为其默认值。

对于 Linux、macOS 或 Unix:

aws rds reset-db-cluster-parameter-group \ --db-cluster-parameter-group-name mydbclusterparametergroup \ --parameters "ParameterName=server_audit_logging,ApplyMethod=immediate" \ "ParameterName=server_audit_logs_upload,ApplyMethod=immediate"

对于 Windows:

aws rds reset-db-cluster-parameter-group ^ --db-cluster-parameter-group-name mydbclusterparametergroup ^ --parameters "ParameterName=server_audit_logging,ParameterValue=1,ApplyMethod=immediate" ^ "ParameterName=server_audit_logs_upload,ParameterValue=1,ApplyMethod=immediate"

该命令产生类似下面的输出:

DBClusterParameterGroupName mydbclusterparametergroup

要将数据库集群参数组中的参数重置为其默认值,请使用带以下必需参数的 RDS API ResetDBClusterParameterGroup 命令:DBClusterParameterGroupName

要重置数据库集群参数组中的所有参数,请将 ResetAllParameters 参数设置为 true。要重置特定参数,请指定 Parameters 参数。

复制数据库集群参数组

您可以复制您创建的自定义数据库集群参数组。当您已创建一个数据库集群参数组并且想在新的数据库集群参数组中包含该组中的大部分自定义参数和值时,复制参数组是一个方便的解决方案。您可通过使用 AWS CLI copy-db-cluster-parameter-group 命令或 RDS API CopyDBClusterParameterGroup 操作来复制数据库集群参数组。

复制数据库集群参数组之后,至少等待 5 分钟,然后创建使用该数据库集群参数组的数据库集群。这样,Amazon RDS 就可以在新数据库集群使用参数组之前完全复制此参数组。您可以使用 Amazon RDS 控制台Parameter groups(参数组)页面,或者使用 describe-db-cluster-parameters 命令,以验证是否创建了数据库集群参数组。

注意

您无法复制默认参数组。不过,您可以创建基于默认参数组的新参数组。

您无法将数据库集群参数组复制到其他 AWS 账户或 AWS 区域。

复制数据库集群参数组
  1. 登录 AWS Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择参数组

  3. 在列表中,选择要复制的自定义参数组。

  4. 对于 Parameter group actions (参数组操作),选择 Copy (复制)

  5. New DB parameter group identifier (新数据库参数组标识符) 中,输入新参数组的名称。

  6. Description (描述) 中,输入新参数组的描述。

  7. 选择 Copy (复制)

要复制数据库集群参数组,请使用 AWS CLI copy-db-cluster-parameter-group 命令及以下必要参数:

  • --source-db-cluster-parameter-group-identifier

  • --target-db-cluster-parameter-group-identifier

  • --target-db-cluster-parameter-group-description

以下示例创建一个名为 mygroup2 的新数据库参集群数组,它是数据库集群参数组 mygroup1 的副本。

对于 Linux、macOS 或 Unix:

aws rds copy-db-cluster-parameter-group \ --source-db-cluster-parameter-group-identifier mygroup1 \ --target-db-cluster-parameter-group-identifier mygroup2 \ --target-db-cluster-parameter-group-description "DB parameter group 2"

对于 Windows:

aws rds copy-db-cluster-parameter-group ^ --source-db-cluster-parameter-group-identifier mygroup1 ^ --target-db-cluster-parameter-group-identifier mygroup2 ^ --target-db-cluster-parameter-group-description "DB parameter group 2"

要复制数据库集群参数组,请将 RDS API CopyDBClusterParameterGroup 操作与下列必需参数配合使用:

  • SourceDBClusterParameterGroupIdentifier

  • TargetDBClusterParameterGroupIdentifier

  • TargetDBClusterParameterGroupDescription

列出数据库集群参数组

您可以列出为 AWS 账户创建的数据库集群参数组。

注意

当您为特定数据库引擎和版本创建数据库集群时,将自动从默认参数模板创建默认参数组。这些默认参数组包含首选参数设置,并且无法修改。当您创建自定义参数组时,可以修改参数设置。

列出 AWS 账户的所有数据库集群参数组
  1. 登录 AWS Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择参数组

    数据库集群参数组出现在数据库集群参数组类型列表中。

要列出 AWS 账户的所有数据库集群参数组,请使用 AWS CLI describe-db-cluster-parameter-groups 命令。

下例列出了 AWS 账户的所有可用数据库集群参数组。

aws rds describe-db-cluster-parameter-groups

以下示例描述了 mydbclusterparametergroup 参数组。

对于 Linux、macOS 或 Unix:

aws rds describe-db-cluster-parameter-groups \ --db-cluster-parameter-group-name mydbclusterparametergroup

对于 Windows:

aws rds describe-db-cluster-parameter-groups ^ --db-cluster-parameter-group-name mydbclusterparametergroup

此命令会返回类似以下内容的响应:

{ "DBClusterParameterGroups": [ { "DBClusterParameterGroupName": "mydbclusterparametergroup", "DBParameterGroupFamily": "aurora-mysql5.7", "Description": "My new cluster parameter group", "DBClusterParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:cluster-pg:mydbclusterparametergroup" } ] }

要列出 AWS 账户的所有数据库集群参数组,请使用 RDS API DescribeDBClusterParameterGroups 操作。

查看数据库集群参数组的参数值

您可获得数据库集群参数组内所有参数的列表及它们的值。

查看数据库集群参数组的参数值
  1. 登录 AWS Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择参数组

    数据库集群参数组出现在数据库集群参数组类型列表中。

  3. 选择数据库集群参数组的名称以查看其参数列表。

要查看数据库集群参数组的参数值,请使用 AWS CLI describe-db-cluster-parameters 命令及以下必要参数。

  • --db-cluster-parameter-group-name

以下示例以 JSON 格式列出名为 mydbclusterparametergroup 的数据库集群参数组的参数和参数值。

此命令会返回类似以下内容的响应:

aws rds describe-db-cluster-parameters --db-cluster-parameter-group-name mydbclusterparametergroup
{ "Parameters": [ { "ParameterName": "allow-suspicious-udfs", "Description": "Controls whether user-defined functions that have only an xxx symbol for the main function can be loaded", "Source": "engine-default", "ApplyType": "static", "DataType": "boolean", "AllowedValues": "0,1", "IsModifiable": false, "ApplyMethod": "pending-reboot", "SupportedEngineModes": [ "provisioned" ] }, { "ParameterName": "aurora_binlog_read_buffer_size", "ParameterValue": "5242880", "Description": "Read buffer size used by master dump thread when the switch aurora_binlog_use_large_read_buffer is ON.", "Source": "engine-default", "ApplyType": "dynamic", "DataType": "integer", "AllowedValues": "8192-536870912", "IsModifiable": true, "ApplyMethod": "pending-reboot", "SupportedEngineModes": [ "provisioned" ] }, ...

要查看数据库集群参数组的参数值,请使用带下列所需参数的 RDS API DescribeDBClusterParameters 命令。

  • DBClusterParameterGroupName

在某些情况下,不显示参数的允许值。这些始终是源为数据库引擎原定设置值的参数。

要查看这些参数的值,可以运行以下 SQL 语句:

  • MySQL:

    -- Show the value of a particular parameter mysql$ SHOW VARIABLES LIKE '%parameter_name%'; -- Show the values of all parameters mysql$ SHOW VARIABLES;
  • PostgreSQL:

    -- Show the value of a particular parameter postgresql=> SHOW parameter_name; -- Show the values of all parameters postgresql=> SHOW ALL;

删除数据库集群参数组

您可以使用 AWS Management Console、AWS CLI 或 RDS API 删除数据库集群参数组。仅当数据库集群参数组未与数据库集群关联时,才能将其删除。

删除参数组
  1. 登录 AWS Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择参数组

    参数组显示在列表中。

  3. 选择要删除的数据库集群参数组的名称。

  4. 选择操作,然后选择删除

  5. 查看参数组名称,然后选择删除

要删除数据库集群参数组,请使用带以下必需参数的 AWS CLI delete-db-cluster-parameter-group 命令。

  • --db-parameter-group-name

以下示例删除了名为 mydbparametergroup 的数据库集群参数组。

aws rds delete-db-cluster-parameter-group --db-parameter-group-name mydbparametergroup

要删除数据库集群参数组,请使用带以下必需参数的 RDS API DeleteDBClusterParameterGroup 命令。

  • DBParameterGroupName