更改部署配置
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 Connections。
如何计算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-plugin 更改配置,请使用 deployment-configuration
命令:
ibmcloud cdb deployment-configuration <deployment name or CRN> [@JSON_FILE | JSON_STRING]
此命令将读取要从 JSON 对象或文件进行的更改。 有关更多信息,请参阅 CLI 参考页面。
使用 Cloud Databases API
有两个部署配置端点,一个用于查看配置模式,另一个用于更改配置。 要查看配置模式,请向 /deployments/{id}/configuration/schema
发送 GET
请求。
要更改配置,请将您希望在 PATCH
请求的请求主体中更改为 JSON 对象的设置发送到 /deployments/{id}/configuration
。
有关更多信息,请参阅 API 参考。
Databases for MySQL 时区设置
Databases for MySQL 部署的时区始终为全球标准时间。 使用 Cloud Databases API 配置时区,或者 CLI 将时区更改为指定时区 (建议) 或时区的偏移量。
您需要在已复原的实例和读副本上再次配置时区。 虽然会复原时区表 (对于复原) 和复制时区表 (对于读副本),但 @@global.time_zone
值不是。 要设置此值,请使用与以前相同的 API 调用,但使用新的 CRN。
配置 Databases for MySQL 时区设置
在供应时,会将 Cloud Databases 部署配置为全球标准时间。 重新配置时区是一项持久更改,必须针对每个 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配置设置
- 缺省-
sha256_password
- 允许的值:
sha256_password
,mysql_native_password
- 是否重新启动数据库? -
true
除非严格必要,否则请勿使用 mysql_native_password
。
innodb_buffer_pool_size_percentage
- 描述: 要用于
innodb_buffer_pool_size
的内存百分比。 缺省值 50% 是保守值,适用于任何大小的数据库。 如果您的数据库需要更多 RAM,那么可以增大此值。 将此值设置得过高可能会超出数据库的内存限制,这可能会导致其崩溃。 - 缺省值:
50
- 最小值:
10
- 最大值:
100
- 是否重新启动数据库? -
true
innodb_flush_log_at_trx_commit
- 描述: 控制 commit 操作的严格 ACID 合规性与批量重新排列和执行与落实相关的 I/O 操作时可能实现的更高性能之间的平衡。 您可以通过更改缺省值来实现更好的性能,但是在崩溃时可能会丢失事务。
- 缺省值:
2
- 最小值:
0
- 最大值:
2
- 是否重新启动数据库? -
false
- 描述: 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_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
- 描述: 缺省情况下,当前在服务器上设置的时区为 "+ 00:00" (全球标准时间)。 不过,也可以将其设置为与协调世界时的特定偏移,格式为[HH]:MM,前缀为 + 或 -,例如 "+10:00"、'-6:00 "或 "+05:30"。 还可以使用诸如 "MET" 或“美国/太平洋”之类的指定时区。
- 缺省值:
+00:00
- 类型:
string
- 是否重新启动数据库? -
false
- 描述: 在关闭非交互式连接之前,服务器等待该连接上的活动的秒数。
- 缺省值:
28800
- 最小值:
1
- 最大值:
31536000
- 是否重新启动数据库? -
false
- 描述:InnoDB 中读取操作的 I/O 线程数。
- 缺省值:
4
- 最小值:
1
- 最大值:
64
- 是否重新启动数据库? -
true
- 描述终止读取前等待连接中更多数据的秒数。
- 缺省值:
30
- 最小值:
1
- 最大值:
7200
- 是否重新启动数据库? -
false