指定数据库参数 - Amazon Relational Database Service

指定数据库参数

数据库参数类型包括:

  • 整数

  • Boolean

  • String

  • 长整型

  • Double

  • Timestamp

  • 其他定义的数据类型的对象

  • 整数、布尔值、字符串、long、double、时间戳或对象类型的值的数组

您还可以使用表达式、公式和函数指定整数和布尔参数。

对于 Oracle 引擎,您可以使用 DBInstanceClassHugePagesDefault 公式变量指定布尔值数据库参数。请参阅 数据库参数公式变量

对于 PostgreSQL 引擎,您可以使用表达式指定布尔值数据库参数。请参阅 布尔值数据库参数表达式

数据库参数公式

数据库参数公式是一种可解析为整数值或布尔值的表达式。可以将表达式用大括号括起来:{}。可以为数据库参数值使用公式,也可以将公式用作数据库参数函数的参数。

语法
{FormulaVariable} {FormulaVariable*Integer} {FormulaVariable*Integer/Integer} {FormulaVariable/Integer}

数据库参数公式变量

每个公式变量会返回一个整数或布尔值。变量的名称是区分大小写的。

AllocatedStorage

返回一个整数,它表示数据卷的大小(以字节为单位)。

DBInstanceClassHugePagesDefault

返回一个布尔值。当前,仅 Oracle 引擎支持它。

有关更多信息,请参阅“为 RDS for Oracle 实例开启大页”。

DBInstanceClassMemory

该变量会返回一个整数,表示数据库进程可用的内存字节数。这个数字是以数据库实例类的内存总量开始在内部计算得出的。从此处,计算结果将减去为操作系统以及管理实例的 RDS 进程预留的内存。因此,该数字总是略低于 数据库实例类 中实例类表所示的内存数字。确切的值取决于多种因素的组合。其中包括实例类、数据库引擎,以及其适用于 RDS 实例还是适用于属于 Aurora 集群一部分的实例。

DBInstanceVCPU

返回一个整数,它表示 Amazon RDS 用于管理实例的虚拟中央处理器 (vCPU) 的数量。

EndPointPort

返回一个整数,它表示连接到数据库实例时使用的端口。

TrueIfReplica

如果数据库实例是只读副本,返回 1,如果不是只读副本,则返回 0。这是 MySQL 中 read_only 参数的默认值。

数据库参数公式运算符

数据库参数公式支持两个运算符:除法和乘法。

除法运算符:/

用除数除以被除数,返回整数型商。商中的小数不四舍五入,直接截断。

语法

dividend / divisor

被除数和除数参数必须是整数型表达式。

乘法运算符:*

将表达式乘以表达式,返回表达式的乘积。表达式中的小数不四舍五入,直接截断。

语法

expression * expression

两个表达式必须都是整数型。

数据库参数函数

您可以将数据库参数函数的参数指定为整数或公式。每个函数必须具有至少一个参数。将多个参数指定为逗号分隔的列表。列表不能拥有任何空成员,如 argument1argument3。函数名称区分大小写。

IF

返回一个参数。

当前,只有 Oracle 引擎支持它,并且唯一支持的第一个参数是 {DBInstanceClassHugePagesDefault}。有关更多信息,请参阅“为 RDS for Oracle 实例开启大页”。

语法

IF(argument1, argument2, argument3)

如果第一个参数的计算结果为 true,则返回第二个参数。否则返回第三个参数。

GREATEST

返回整数型或者参数公式列表中最大的值。

语法

GREATEST(argument1, argument2,...argumentn)

返回整数。

LEAST

返回整数型或者参数公式列表中最小的值。

语法

LEAST(argument1, argument2,...argumentn)

返回整数。

SUM

添加指定整数型或者参数公式的值。

语法

SUM(argument1, argument2,...argumentn)

返回整数。

布尔值数据库参数表达式

布尔值数据库参数表达式解析为布尔值 1 或 0。引号中的内容是表达式。

注意

仅 PostgreSQL 引擎支持布尔值数据库参数表达式。

语法
"expression operator expression"

两个表达式都必须解析为整数。表达式可以是:

  • 整型常量

  • 数据库参数公式

  • 数据库参数函数

  • 数据库参数变量

布尔值数据库参数表达式支持以下不等式运算符:

大于运算符:>

语法

"expression > expression"
小于运算符:<

语法

"expression < expression"
大于或等于运算符:>=、=>

语法

"expression >= expression" "expression => expression"
小于或等于运算符:<=、=<

语法

"expression <= expression" "expression =< expression"
例 使用布尔值数据库参数表达式

以下布尔数据库参数表达式示例将参数公式的结果与整数进行比较。这样做是为了修改 PostgreSQL 数据库实例的布尔数据库参数 wal_compression。参数表达式将 vCPU 的数量与值 2 进行比较。如果 vCPU 的数量大于 2,wal_compression 数据库参数则会设置为 true。

aws rds modify-db-parameter-group --db-parameter-group-name group-name \ --parameters "ParameterName=wal_compression,ParameterValue=\"{DBInstanceVCPU} > 2\" "

数据库参数日志表达式

您可以为日志表达式设置整数数据库参数值。可以将表达式用大括号括起来:{}。例如:

{log(DBInstanceClassMemory/8187281418)*1000}

log 函数表示日志基数 2。此示例还使用了 DBInstanceClassMemory 公式变量。请参阅 数据库参数公式变量

注意

目前,您只能将 MySQL innodb_log_file_size 参数指定为一个整数。

数据库参数值示例

这些示例展示了如何使用公式、函数和表达式来表达数据库参数的值。

警告

在数据库参数组内设置参数不当可能会产生意外的不利影响。可能包括性能下降和系统不稳定。修改数据库参数时应保持谨慎,且修改数据库参数组前要备份数据。将参数组更改应用到生产数据库实例前,请在使用时间点还原创建的测试数据库实例上试用这些参数组更改。

例 使用数据库参数函数 GREATEST

您可以指定 Oracle 进程参数中的 GREATEST 函数。使用它可以将用户进程数设置为 80 或 DBInstanceClassMemory/9868951 中的较大值。

GREATEST({DBInstanceClassMemory/9868951},80)
例 使用数据库参数函数 LEAST

您可以指定 MySQL LEAST 参数值中的 max_binlog_cache_size 函数。使用它将事务可以在 MySQL 实例中使用的最大缓存大小设置为 1 MB 或DBInstanceClass/256 中的较小值。

LEAST({DBInstanceClassMemory/256},10485760)