指定数据库参数
数据库参数类型包括:
整数
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
两个表达式必须都是整数型。
数据库参数函数
您可以将数据库参数函数的参数指定为整数或公式。每个函数必须具有至少一个参数。将多个参数指定为逗号分隔的列表。列表不能拥有任何空成员,如 argument1、argument3。函数名称区分大小写。
- 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)