PolarDB新增支持将集群规格相关的参数设置为表达式的形式,当集群规格发生变更时,使用表达式设置的参数值会适应规格的变更而自动变化,使集群始终保持最优或最稳定的状态。
注意事项
参数值为数值类型的参数才支持使用参数表达式,参数值为字符类型的参数不支持。
例如innodb_sort_buffer_size(取值范围为65536~67108864)参数值可以使用表达式设置为
{DBNodeClassMemory*3/4}
,但loose_recycle_bin(取值为ON或OFF)的参数值不支持使用表达式。某些参数值也是数值类型,但该参数值并不具备数字含义,例如ssl参数的取值为0或1,其中0表示SSL加密关闭,1表示SSL加密开启,此时不建议使用表达式的方式设置该参数。
集群变配后,使用了参数表达式设置的参数值可能会超出该参数允许的取值范围,此时最终取值将以该参数的取值范围为准。
例如,设置了innodb_max_undo_log_size(取值范围为
[10485760-107374182400]
)参数值为{DBNodeClassMemory*1/2}
,那么:当集群规格的内存升配至256 GB及以上时,
{DBNodeClassMemory*1/2}
的计算值(256 GB×1/2=128 GB=137438953472 Byte
)大于107374182400,此时innodb_max_undo_log_size最终取值即为107374182400。当集群规格的内存在256 GB以下时,
{DBNodeClassMemory*1/2}
的计算值符合该参数的取值范围,innodb_max_undo_log_size最终取值即为{DBNodeClassMemory*1/2}
的计算值。
说明建议您使用参数表达式设置参数前先确认对应参数的取值范围,并要考虑到集群规格升降导致的参数值变动问题。
参数表达式支持类别
PolarDB参数表达式语法的相关支持详见下表。
支持类别 | 说明 | 示例 |
变量 |
说明 关于计算节点规格列表以及各规格的IOPS、内存、CPU核数以及最大连接数,请参见企业版计算节点规格。 |
|
运算符 |
说明 被除数、除数和乘数均不支持小数运算。例如支持 | |
函数 |
|
|
使用方法
使用表达式来设置参数值的操作步骤与设置集群参数的步骤一致,具体操作步骤,请参见设置集群参数和节点参数。
您只需在修改当前值时,输入对应的表达式即可。例如您可以将innodb_max_undo_log_size的当前值修改为{DBNodeClassMemory*1/2}
。