更改您的部署配置

IBM Cloud® Databases for MySQL 可讓您變更部分 MySQL 配置設定,讓您可以根據使用案例來調整 MySQL 資料庫。 若要對資料庫配置進行永久變更,請使用 Cloud Databases CLI-pluginAPI,將變更寫入部署的配置檔。

配置定義在綱目中。 若要進行變更,請將具有設定及其新值的 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_log_buffer_size

  • 說明: InnoDB 用來寫入磁碟上 日誌檔 的緩衝區大小 (以位元組為單位)。
  • 預設值: 33554432
  • 下限: 1048576
  • 上限: 4294967295
  • 要重新啟動資料庫嗎? - true

innodb_log_file_size

  • 描述:日誌組中每個 日誌檔案的大小(以位元組為單位)。Innodb_log_file_sizeinnodb_log_files_in_group 已被 innodb_redo_log_capacity 取代。 設定 innodb_log_file_size 也會設定 innodb_redo_log_capacity
  • 預設值: 2147483648
  • 下限: 4194304
  • 上限: 274877906900
  • 要重新啟動資料庫嗎? - false

innodb_lru_scan_depth

  • 說明: 此參數會影響 InnoDB 緩衝池flush 作業的演算法和啟發。 小於預設值的設定通常適用於大部分工作量。 遠高於必要值的值可能會影響效能。 只有在一般工作量下具有備用 I/O 容量時,才考慮增加此值。
  • 預設值: 256
  • 下限: 128
  • 上限: 2048
  • 要重新啟動資料庫嗎? - false

innodb_write_io_threads

  • 說明: InnoDB中寫入作業的 I/O 執行緒數目。
  • 預設值: 4
  • 下限: 1
  • 上限: 64
  • 要重新啟動資料庫嗎? - true

max_allowed_packet

  • 預設值- 1073741824
  • 最小值- 1024
  • 上限- 1073741824
  • 要重新啟動資料庫嗎? - false

max_prepared_stmt_count

  • 說明-指定伺服器上備妥陳述式的總數。
  • 預設值- 16382
  • 最小值- 0
  • 最大值-(版本 ≤ 8.0.17) 1048576(版本 ≥ 8.0.18) 4194304
  • 要重新啟動資料庫嗎? - false

max_connections

  • 預設值- 200
  • 要重新啟動資料庫嗎? - false

在增加最大連線數之前, 您可能需要先進行擴展。

mysql_max_binlog_age_sec

  • 預設值- 1800
  • 要重新啟動資料庫嗎? - false

net_write_timeout

  • 說明: 在中斷寫入之前等待區塊寫入連線的秒數。
  • 預設值: 60
  • 下限: 1
  • 上限: 7200
  • 要重新啟動資料庫嗎? - false

sql_mode

  • 容許值:
    • ALLOW_INVALID_DATES
    • ANSI_QUOTES
    • ERROR_FOR_DIVISION_BY_ZERO
    • HIGH_NOT_PRECEDENCE
    • IGNORE_SPACE
    • NO_AUTO_CREATE_USER
    • NO_AUTO_VALUE_ON_ZERO
    • NO_BACKSLASH_ESCAPES
    • NO_DIR_IN_CREATE
    • NO_ENGINE_SUBSTITUTION
    • NO_FIELD_OPTIONS
    • NO_KEY_OPTIONS
    • NO_TABLE_OPTIONS
    • NO_UNSIGNED_SUBTRACTION
    • NO_ZERO_DATE
    • NO_ZERO_IN_DATE
    • ONLY_FULL_GROUP_BY
    • PAD_CHAR_TO_FULL_LENGTH
    • PIPES_AS_CONCAT
    • REAL_AS_FLOAT
    • STRICT_ALL_TABLES
    • STRICT_TRANS_TABLES
  • 要重新啟動資料庫嗎? - false

time_zone

  • 說明: 依預設,目前在伺服器上設定的時區為 '+ 00:00' (世界標準時間)。 但是,也可以將其設定為與協調世界時的特定偏移量,格式為[H] H:MM,並帶有 + 或 - 前綴,例如“+10:00”、'-6”或“+”05:30'。 也可以使用具名時區,例如 'MET' 或 'US/Pacific'。
  • 預設值: +00:00
  • 類型:string
  • 要重新啟動資料庫嗎? - false

wait_timeout

  • 說明: 在關閉非互動式連線之前,伺服器等待活動的秒數。
  • 預設值: 28800
  • 下限: 1
  • 上限: 31536000
  • 要重新啟動資料庫嗎? - false

innodb_read_io_threads

  • 說明:InnoDB 中讀取作業的 I/O 線程數。
  • 預設值: 4
  • 下限: 1
  • 上限: 64
  • 要重新啟動資料庫嗎? - true

net_read_timeout

  • 說明:在放棄讀取之前,等待連線提供更多資料的秒數。
  • 預設值: 30
  • 下限: 1
  • 上限: 7200
  • 要重新啟動資料庫嗎? - false