參數(shù)表達(dá)式
PolarDB新增支持將集群規(guī)格相關(guān)的參數(shù)設(shè)置為表達(dá)式的形式,當(dāng)集群規(guī)格發(fā)生變更時(shí),使用表達(dá)式設(shè)置的參數(shù)值會(huì)適應(yīng)規(guī)格的變更而自動(dòng)變化,使集群始終保持最優(yōu)或最穩(wěn)定的狀態(tài)。
注意事項(xiàng)
參數(shù)值為數(shù)值類型的參數(shù)才支持使用參數(shù)表達(dá)式,參數(shù)值為字符類型的參數(shù)不支持。
例如innodb_sort_buffer_size(取值范圍為65536~67108864)參數(shù)值可以使用表達(dá)式設(shè)置為
{DBNodeClassMemory*3/4}
,但loose_recycle_bin(取值為ON或OFF)的參數(shù)值不支持使用表達(dá)式。某些參數(shù)值也是數(shù)值類型,但該參數(shù)值并不具備數(shù)字含義,例如ssl參數(shù)的取值為0或1,其中0表示SSL加密關(guān)閉,1表示SSL加密開啟,此時(shí)不建議使用表達(dá)式的方式設(shè)置該參數(shù)。
集群變配后,使用了參數(shù)表達(dá)式設(shè)置的參數(shù)值可能會(huì)超出該參數(shù)允許的取值范圍,此時(shí)最終取值將以該參數(shù)的取值范圍為準(zhǔn)。
例如,設(shè)置了innodb_max_undo_log_size(取值范圍為
[10485760-107374182400]
)參數(shù)值為{DBNodeClassMemory*1/2}
,那么:當(dāng)集群規(guī)格的內(nèi)存升配至256 GB及以上時(shí),
{DBNodeClassMemory*1/2}
的計(jì)算值(256 GB×1/2=128 GB=137438953472 Byte
)大于107374182400,此時(shí)innodb_max_undo_log_size最終取值即為107374182400。當(dāng)集群規(guī)格的內(nèi)存在256 GB以下時(shí),
{DBNodeClassMemory*1/2}
的計(jì)算值符合該參數(shù)的取值范圍,innodb_max_undo_log_size最終取值即為{DBNodeClassMemory*1/2}
的計(jì)算值。
說明建議您使用參數(shù)表達(dá)式設(shè)置參數(shù)前先確認(rèn)對應(yīng)參數(shù)的取值范圍,并要考慮到集群規(guī)格升降導(dǎo)致的參數(shù)值變動(dòng)問題。
參數(shù)表達(dá)式支持類別
PolarDB參數(shù)表達(dá)式語法的相關(guān)支持詳見下表。
支持類別 | 說明 | 示例 |
變量 |
說明 關(guān)于計(jì)算節(jié)點(diǎn)規(guī)格列表以及各規(guī)格的IOPS、內(nèi)存、CPU核數(shù)以及最大連接數(shù),請參見企業(yè)版計(jì)算節(jié)點(diǎn)規(guī)格。 |
|
運(yùn)算符 |
說明 被除數(shù)、除數(shù)和乘數(shù)均不支持小數(shù)運(yùn)算。例如支持 | |
函數(shù) |
|
|
使用方法
使用表達(dá)式來設(shè)置參數(shù)值的操作步驟與設(shè)置集群參數(shù)的步驟一致,具體操作步驟,請參見設(shè)置集群參數(shù)和節(jié)點(diǎn)參數(shù)。
您只需在修改當(dāng)前值時(shí),輸入對應(yīng)的表達(dá)式即可。例如您可以將innodb_max_undo_log_size的當(dāng)前值修改為{DBNodeClassMemory*1/2}
。