更改您的部署配置
IBM Cloud® Databases for MySQL 可讓您變更部分 MySQL 配置設定,讓您可以根據使用案例來調整 MySQL 資料庫。 若要對資料庫配置進行永久變更,請使用 Cloud Databases CLI-plugin 或 API,將變更寫入部署的配置檔。
配置定義在綱目中。 若要進行變更,請將具有設定及其新值的 JSON 物件傳送至 API 或 CLI。 例如,在 CLI 或 API 中,使用如下指令將 max_connections 設為 150:
{"configuration":{"max_connections":150}}
如需相關資訊,請參閱 管理 MySQL 連線。
如何計算MySQL max_connections 變數
max_connections 是 MySQL 中的配置參數,可判定可以與資料庫伺服器建立的並行連線數目上限。
MySQL max_connections 基本公式
計算 max_connections 的基本公式為:
Available RAM = Global Buffers + (Thread Buffers x `max_connections`)
若要擷取緩衝區及其值的清單,請使用如下指令:
SHOW VARIABLES LIKE '%buffer%';
使用 Cloud Databases CLI 外掛程式
使用類似命令檢查部署的預設配置:
ibmcloud cdb deployment-configuration-schema <deployment name or CRN>
此指令只會回傳預設設定。 對預設組態的變更不會顯示。
若要透過 Cloud Databases CLI 外掛程式變更您的配置,請使用 deployment-configuration 指令:
ibmcloud cdb deployment-configuration <deployment name or CRN> [@JSON_FILE | JSON_STRING]
指令會讀取您要從 JSON 物件或檔案進行的變更。 如需相關資訊,請參閱 CLI 參考頁面。
使用 Cloud Databases API
有兩個部署配置端點,一個用於檢視配置綱目,另一個用於變更配置。 若要檢視配置綱目,請將 GET 要求傳送至 /deployments/{id}/configuration/schema。
若要變更配置,請將您想要在 PATCH 要求的要求內文中變更為 JSON 物件的設定傳送至 /deployments/{id}/configuration。
如需相關資訊,請參閱 API 參考資料。
Databases for MySQL 時區設定
Databases for MySQL 部署的時區一律為世界標準時間 (UTC)。 使用 Cloud Databases API 或 CLI 將時區變更為具名時區 (建議) 或時區偏移。
您需要在已還原的實例及讀取抄本上重新配置時區。 雖然時區表格會還原 (若為還原) 及抄寫 (若為讀取抄本),但 @@global.time_zone 值不會。 若要設定此值,請使用與之前相同的 API 呼叫,但使用新的 CRN。
配置 Databases for MySQL 時區設定
在佈建時,Cloud Databases 部署配置為世界標準時間 (UTC)。 重新配置時區是一項持續性變更,必須針對每一個 Cloud Databases 部署進行。
配置時區會設定 MySQL 實例內的廣域時區。 在發生失效接手的實例中,您的時區設定會隨著抄寫而延伸,因為時區設定會寫入 MySQL 配置檔。 但如果您在配置偏好的時區之前將實例還原至復原點,則例外。
如果您將時區配置為具有「日光節約時間」的時區,則調整是配置的一部分。 您無需採取任何動作。 使用特定時區比使用偏移時間要好。
Cloud Databases 驗證 time_zone 參數值。 如果您使用無效值來配置部署,則配置會失敗。 有效的具名 time_zone values 可在 這裡找到。
變更 Cloud Databases API 中的時區
範例偏移:
curl -v -XPATCH -H "Authorization: Bearer $token" -H "Content-Type: application/json" https://api.<region>.databases.cloud.ibm.com/v5/ibm/deployments/<crn>/configuration -d '{"configuration": {"time_zone": "<EXAMPLE OFFSET"}}'
名稱為時區的範例:
curl -v -XPATCH -H "Authorization: Bearer $token" -H "Content-Type: application/json" https://api.<region>.databases.cloud.ibm.com/v5/ibm/deployments/<crn>/configuration -d '{"configuration": {"time_zone": "<EXAMPLE TIME ZONE"}}'
在 Cloud Databases CLI 中變更時區
具名時區範例
ibmcloud cdb deployment-configuration <crn> '{"time_zone": "US/Pacific"}'
可用的Databases for MySQL配置設定
innodb_buffer_pool_size_percentage
- 說明: 用於
innodb_buffer_pool_size的記憶體百分比。 預設值 50% 是保守值,適用於任何大小的資料庫。 如果資料庫需要更多 RAM,則可以增加此值。 將此值設得太高可能會超出資料庫的記憶體限制,這會導致資料庫當機。 - 預設值:
50 - 下限:
10 - 上限:
100 - 要重新啟動資料庫嗎? -
true
- 說明: InnoDB 用來寫入磁碟上 日誌檔 的緩衝區大小 (以位元組為單位)。
- 預設值:
33554432 - 下限:
1048576 - 上限:
4294967295 - 要重新啟動資料庫嗎? -
true
- 描述:日誌組中每個 日誌檔案的大小(以位元組為單位)。
Innodb_log_file_size和innodb_log_files_in_group已被innodb_redo_log_capacity取代。 設定innodb_log_file_size也會設定innodb_redo_log_capacity。 - 預設值:
2147483648 - 下限:
4194304 - 上限:
274877906900 - 要重新啟動資料庫嗎? -
false
- 說明: 此參數會影響 InnoDB 緩衝池之 flush 作業的演算法和啟發。 小於預設值的設定通常適用於大部分工作量。 遠高於必要值的值可能會影響效能。 只有在一般工作量下具有備用 I/O 容量時,才考慮增加此值。
- 預設值:
256 - 下限:
128 - 上限:
2048 - 要重新啟動資料庫嗎? -
false
- 說明: InnoDB中寫入作業的 I/O 執行緒數目。
- 預設值:
4 - 下限:
1 - 上限:
64 - 要重新啟動資料庫嗎? -
true
- 預設值-
1073741824 - 最小值-
1024 - 上限-
1073741824 - 要重新啟動資料庫嗎? -
false
- 說明-指定伺服器上備妥陳述式的總數。
- 預設值-
16382 - 最小值-
0 - 最大值-(版本 ≤ 8.0.17)
1048576(版本 ≥ 8.0.18)4194304 - 要重新啟動資料庫嗎? -
false
- 預設值-
200 - 要重新啟動資料庫嗎? -
false
在增加最大連線數之前, 您可能需要先進行擴展。
- 預設值-
1800 - 要重新啟動資料庫嗎? -
false
- 說明: 在中斷寫入之前等待區塊寫入連線的秒數。
- 預設值:
60 - 下限:
1 - 上限:
7200 - 要重新啟動資料庫嗎? -
false
- 容許值:
ALLOW_INVALID_DATESANSI_QUOTESERROR_FOR_DIVISION_BY_ZEROHIGH_NOT_PRECEDENCEIGNORE_SPACENO_AUTO_CREATE_USERNO_AUTO_VALUE_ON_ZERONO_BACKSLASH_ESCAPESNO_DIR_IN_CREATENO_ENGINE_SUBSTITUTIONNO_FIELD_OPTIONSNO_KEY_OPTIONSNO_TABLE_OPTIONSNO_UNSIGNED_SUBTRACTIONNO_ZERO_DATENO_ZERO_IN_DATEONLY_FULL_GROUP_BYPAD_CHAR_TO_FULL_LENGTHPIPES_AS_CONCATREAL_AS_FLOATSTRICT_ALL_TABLESSTRICT_TRANS_TABLES
- 要重新啟動資料庫嗎? -
false
- 說明: 依預設,目前在伺服器上設定的時區為 '+ 00:00' (世界標準時間)。 但是,也可以將其設定為與協調世界時的特定偏移量,格式為[H] H:MM,並帶有 + 或 - 前綴,例如“+10:00”、'-6”或“+”05:30'。 也可以使用具名時區,例如 'MET' 或 'US/Pacific'。
- 預設值:
+00:00 - 類型:
string - 要重新啟動資料庫嗎? -
false
- 說明: 在關閉非互動式連線之前,伺服器等待活動的秒數。
- 預設值:
28800 - 下限:
1 - 上限:
31536000 - 要重新啟動資料庫嗎? -
false
- 說明:InnoDB 中讀取作業的 I/O 線程數。
- 預設值:
4 - 下限:
1 - 上限:
64 - 要重新啟動資料庫嗎? -
true
- 說明:在放棄讀取之前,等待連線提供更多資料的秒數。
- 預設值:
30 - 下限:
1 - 上限:
7200 - 要重新啟動資料庫嗎? -
false