diff --git a/character-set-and-collation.md b/character-set-and-collation.md index f05a03182542..03cdea55e09e 100644 --- a/character-set-and-collation.md +++ b/character-set-and-collation.md @@ -140,7 +140,7 @@ TiDB 对 GBK 字符集的支持详情见 [GBK](/character-set-gbk.md)。 MySQL 限制字符集 `utf8` 为最多 3 个字节。这足以存储在基本多语言平面 (BMP) 中的字符,但不足以存储表情符号 (emoji) 等字符。因此,建议改用字符集`utf8mb4`。 -默认情况下,TiDB 同样限制字符集 `utf8` 为最多 3 个字节,以确保 TiDB 中创建的数据可以在 MySQL 中顺利恢复。你可以禁用此功能,方法是在 TiDB 配置文件中将 `check-mb4-value-in-utf8` 的值更改为 `FALSE`。 +默认情况下,TiDB 同样限制字符集 `utf8` 为最多 3 个字节,以确保 TiDB 中创建的数据可以在 MySQL 中顺利恢复。你可以禁用此功能,方法是将系统变量 [`tidb_check_mb4_value_in_utf8`](/system-variables.md#tidb_check_mb4_value_in_utf8) 的值更改为 `OFF`。 以下示例演示了在表中插入 4 字节的表情符号字符(emoji 字符)时的默认行为。`utf8` 字符集下 `INSERT` 语句不能执行,`utf8mb4` 字符集下可以执行 `INSERT` 语句: diff --git a/configure-memory-usage.md b/configure-memory-usage.md index 01df8b446537..2d15ef56aff3 100644 --- a/configure-memory-usage.md +++ b/configure-memory-usage.md @@ -60,7 +60,7 @@ server-memory-quota = 34359738368 ## tidb-server 内存占用过高时的报警 -默认配置下,tidb-server 实例会在机器内存使用达到总内存量的 80% 时打印报警日志,并记录相关状态文件。该内存使用率可以通过配置项 [`memory-usage-alarm-ratio`](/tidb-configuration-file.md#memory-usage-alarm-ratio-从-v409-版本开始引入) 进行设置。具体报警规则请参考该配置项的说明部分。 +默认配置下,tidb-server 实例会在机器内存使用达到总内存量的 80% 时打印报警日志,并记录相关状态文件。该内存使用率可以通过系统变量 [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) 进行设置。具体报警规则请参考该变量的说明部分。 注意,当触发一次报警后,只有在内存使用率连续低于阈值超过 10 秒并再次达到阈值时,才会再次触发报警。此外,为避免报警时产生的状态文件积累过多,目前只会保留最近 5 次报警时所生成的状态文件。 @@ -72,8 +72,8 @@ server-memory-quota = 34359738368 ```toml mem-quota-query = 34359738368 - [performance] - memory-usage-alarm-ratio = 0.8 + [instance] + tidb_memory_usage_alarm_ratio = 0.8 ``` 2. 创建单表 `CREATE TABLE t(a int);` 并插入 1000 行数据。 @@ -92,7 +92,7 @@ server-memory-quota = 34359738368 * `system memory total`:表示当前系统的总内存 * `system memory usage`:表示当前系统的内存使用量 * `tidb-server memory usage`:表示 tidb-server 实例的内存使用量 - * `memory-usage-alarm-ratio`:表示配置项 [`memory-usage-alarm-ratio`](/tidb-configuration-file.md#memory-usage-alarm-ratio-从-v409-版本开始引入) 的值 + * `memory-usage-alarm-ratio`:表示系统变量 [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) 的值 * `record path`:表示状态文件存放的目录 5. 通过访问状态文件所在目录(该示例中的目录为 `/tmp/1000_tidb/MC4wLjAuMDo0MDAwLzAuMC4wLjA6MTAwODA=/tmp-storage/record`),可以得到一组文件,其中包括 `goroutinue`、`heap`、`running_sql` 3 个文件,文件以记录状态文件的时间为后缀。这 3 个文件分别用来记录报警时的 goroutine 栈信息,堆内存使用状态,及正在运行的 SQL 信息。其中 `running_sql` 文件内的日志格式请参考 [`expensive-queries`](/identify-expensive-queries.md)。 @@ -109,7 +109,7 @@ server-memory-quota = 34359738368 TiDB 支持对执行算子的数据落盘功能。当 SQL 的内存使用超过 Memory Quota 时,tidb-server 可以通过落盘执行算子的中间数据,缓解内存压力。支持落盘的算子有:Sort、MergeJoin、HashJoin、HashAgg。 -- 落盘行为由参数 [`tidb_mem_quota_query`](/system-variables.md#tidb_mem_quota_query)、[`oom-use-tmp-storage`](/tidb-configuration-file.md#oom-use-tmp-storage)、[`tmp-storage-path`](/tidb-configuration-file.md#tmp-storage-path)、[`tmp-storage-quota`](/tidb-configuration-file.md#tmp-storage-quota) 共同控制。 +- 落盘行为由参数 [`tidb_mem_quota_query`](/system-variables.md#tidb_mem_quota_query)、[`tidb_enable_tmp_storage_on_oom`](/system-variables.md#tidb_enable_tmp_storage_on_oom)、[`tmp-storage-path`](/tidb-configuration-file.md#tmp-storage-path)、[`tmp-storage-quota`](/tidb-configuration-file.md#tmp-storage-quota) 共同控制。 - 当落盘被触发时,TiDB 会在日志中打印一条包含关键字 `memory exceeds quota, spill to disk now` 或 `memory exceeds quota, set aggregate mode to spill-mode` 的日志。 - Sort、MergeJoin、HashJoin 落盘是从 v4.0.0 版本开始引入的,HashAgg 落盘是从 v5.2.0 版本开始引入的。 - 当包含 Sort、MergeJoin 或 HashJoin 的 SQL 语句引起内存 OOM 时,TiDB 默认会触发落盘。当包含 HashAgg 算子的 SQL 语句引起内存 OOM 时,TiDB 默认不触发落盘,请设置系统变量 `tidb_executor_concurrency = 1` 来触发 HashAgg 落盘功能。 diff --git a/dashboard/dashboard-slow-query.md b/dashboard/dashboard-slow-query.md index 610504fae5d5..669d7b8bb89d 100644 --- a/dashboard/dashboard-slow-query.md +++ b/dashboard/dashboard-slow-query.md @@ -12,7 +12,7 @@ aliases: ['/docs-cn/dev/dashboard/dashboard-slow-query/'] > **注意:** > -> 若关闭了慢查询日志,则本功能不可用。慢查询日志默认开启,可通过修改 TiDB 配置 [`enable-slow-log`](/tidb-configuration-file.md#enable-slow-log) 开启或禁用。 +> 若关闭了慢查询日志,则本功能不可用。慢查询日志默认开启,可通过修改 TiDB 系统变量 [`tidb_enable_slow_log`](/system-variables.md#tidb_enable_slow_log) 开启或禁用。 ## 访问列表页面 diff --git a/enable-disk-spill-encrypt.md b/enable-disk-spill-encrypt.md index 5fde11354890..62c8b227830a 100644 --- a/enable-disk-spill-encrypt.md +++ b/enable-disk-spill-encrypt.md @@ -5,7 +5,7 @@ summary: 了解如何为 TiDB 落盘文件开启加密。 # 为 TiDB 落盘文件开启加密 -当配置项 `oom-use-tmp-storage` 为 `true` 时,如果单条 SQL 语句的内存使用超出系统变量 [`tidb_mem_quota_query`](/system-variables.md#tidb_mem_quota_query) 的限制,某些算子可以将执行时的中间结果作为临时文件落盘保存,直到查询执行完成之后将它们删除。 +当系统变量 [`tidb_enable_tmp_storage_on_oom`](/system-variables.md#tidb_enable_tmp_storage_on_oom) 为 `ON` 时,如果单条 SQL 语句的内存使用超出系统变量 [`tidb_mem_quota_query`](/system-variables.md#tidb_mem_quota_query) 的限制,某些算子可以将执行时的中间结果作为临时文件落盘保存,直到查询执行完成之后将它们删除。 用户可以开启落盘文件加密功能,防止攻击者通过读取临时文件来访问数据。 diff --git a/explain-joins.md b/explain-joins.md index ce28e3653b8c..756becb4c583 100644 --- a/explain-joins.md +++ b/explain-joins.md @@ -230,7 +230,7 @@ TiDB 会按照以下顺序执行 `HashJoin_27` 算子: ### 运行数据 -如果在执行操作时,内存使用超过了 [`tidb_mem_quota_query`](/system-variables.md#tidb_mem_quota_query) 规定的值(默认为 1GB),且 `oom-use-tmp-storage` 的值为 `true` (默认为 `true`),那么 TiDB 会尝试使用临时存储,在磁盘上创建 Hash Join 的 Build 端。`EXPLAIN ANALYZE` 返回结果中的 `execution info` 一栏记录了有关内存使用情况等运行数据。下面的例子展示了 `tidb_mem_quota_query` 的值分别设为 1GB(默认)及 500MB 时,`EXPLAIN ANALYZE` 的返回结果(当内存配额设为 500MB 时,磁盘用作临时存储区): +如果在执行操作时,内存使用超过了 [`tidb_mem_quota_query`](/system-variables.md#tidb_mem_quota_query) 规定的值(默认为 1 GB),且 [`tidb_enable_tmp_storage_on_oom`](/system-variables.md#tidb_enable_tmp_storage_on_oom) 的值为 `ON` (默认为 `ON`),那么 TiDB 会尝试使用临时存储,在磁盘上创建 Hash Join 的 Build 端。`EXPLAIN ANALYZE` 返回结果中的 `execution info` 一栏记录了有关内存使用情况等运行数据。下面的例子展示了 `tidb_mem_quota_query` 的值分别设为 1 GB(默认)及 500 MB 时,`EXPLAIN ANALYZE` 的返回结果(当内存配额设为 500 MB 时,磁盘用作临时存储区): ```sql EXPLAIN ANALYZE SELECT /*+ HASH_JOIN(t1, t2) */ * FROM t1, t2 WHERE t1.id = t2.id; diff --git a/faq/manage-cluster-faq.md b/faq/manage-cluster-faq.md index d35175780cc3..f0e09fecbdab 100644 --- a/faq/manage-cluster-faq.md +++ b/faq/manage-cluster-faq.md @@ -197,7 +197,7 @@ TiClient Region Error 该指标描述的是在 TiDB-server 作为客户端通过 ### TiDB 同时支持的最大并发连接数? -默认情况下,每个 TiDB 服务器的最大连接数没有限制。如有需要,可以在 `config.toml` 文件中设置 `max-server-connections` 来限制最大连接数。如果并发量过大导致响应时间增加,建议通过添加 TiDB 节点进行扩容。 +默认情况下,每个 TiDB 服务器的最大连接数没有限制。如有需要,可以在 `config.toml` 文件中设置 `instance.max_connections`(或者系统变量 `max_connections`)来限制最大连接数。如果并发量过大导致响应时间增加,建议通过添加 TiDB 节点进行扩容。 ### 如何查看某张表创建的时间? diff --git a/faq/sql-faq.md b/faq/sql-faq.md index 7939803a5211..da18a000f7b9 100644 --- a/faq/sql-faq.md +++ b/faq/sql-faq.md @@ -150,7 +150,7 @@ TiDB 中的 `SHOW PROCESSLIST` 与 MySQL 中的 `SHOW PROCESSLIST` 显示内容 ## 在 TiDB 中如何控制或改变 SQL 提交的执行优先级? -TiDB 支持改变 [per-session](/system-variables.md#tidb_force_priority)、[全局](/tidb-configuration-file.md#force-priority)或单个语句的优先级。优先级包括: +TiDB 支持改变 [per-session](/system-variables.md#tidb_force_priority)、[全局](/system-variables.md#tidb_force_priority)或单个语句的优先级。优先级包括: - HIGH_PRIORITY:该语句为高优先级语句,TiDB 在执行阶段会优先处理这条语句 - LOW_PRIORITY:该语句为低优先级语句,TiDB 在执行阶段会降低这条语句的优先级 diff --git a/identify-slow-queries.md b/identify-slow-queries.md index 83db45125bc3..3b9f6e1e552f 100644 --- a/identify-slow-queries.md +++ b/identify-slow-queries.md @@ -5,9 +5,9 @@ aliases: ['/docs-cn/dev/identify-slow-queries/','/docs-cn/dev/how-to/maintain/id # 慢查询日志 -TiDB 会将执行时间超过 [slow-threshold](/tidb-configuration-file.md#slow-threshold)(默认值为 300 毫秒)的语句输出到 [slow-query-file](/tidb-configuration-file.md#slow-query-file)(默认值:"tidb-slow.log")日志文件中,用于帮助用户定位慢查询语句,分析和解决 SQL 执行的性能问题。 +TiDB 会将执行时间超过 [`tidb_enable_slow_log`](/system-variables.md#tidb_enable_slow_log)(默认值为 300 毫秒)的语句输出到 [slow-query-file](/tidb-configuration-file.md#slow-query-file)(默认值:"tidb-slow.log")日志文件中,用于帮助用户定位慢查询语句,分析和解决 SQL 执行的性能问题。 -TiDB 默认启用慢查询日志,可以修改配置 [`enable-slow-log`](/tidb-configuration-file.md#enable-slow-log) 来启用或禁用它。 +TiDB 默认启用慢查询日志,可以修改系统变量 [`tidb_enable_slow_log`](/system-variables.md#tidb_enable_slow_log) 来启用或禁用它。 ## 日志示例 diff --git a/security-compatibility-with-mysql.md b/security-compatibility-with-mysql.md index e346cf1b85bb..b1ea624dad80 100644 --- a/security-compatibility-with-mysql.md +++ b/security-compatibility-with-mysql.md @@ -9,7 +9,7 @@ aliases: ['/docs-cn/dev/security-compatibility-with-mysql/','/docs-cn/dev/refere - 不支持列级别权限设置。 - 不支持密码过期,最后一次密码变更记录以及密码生存期。[#9709](https://github.com/pingcap/tidb/issues/9709) -- 不支持权限属性 `max_questions`,`max_updated`,`max_connections` 以及 `max_user_connections`。 +- 不支持权限属性 `max_questions`,`max_updated` 以及 `max_user_connections`。 - 不支持密码验证。[#9741](https://github.com/pingcap/tidb/issues/9741) ## 可用的身份验证插件 diff --git a/system-variables.md b/system-variables.md index 497878e2ffce..989ec658aae3 100644 --- a/system-variables.md +++ b/system-variables.md @@ -307,12 +307,12 @@ mysql> SELECT * FROM t1; ### `max_connections` - 作用域:GLOBAL -- 是否持久化到集群:否 +- 是否持久化到集群:否,仅作用于当前连接的 TiDB 实例 - 类型:整数 - 默认值:`0` - 取值范围:`[0, 100000]` -- 该变量表示 TiDB 实例允许的最大连接数。 -- 该变量值为 `0` 时表示无限制。 +- 该变量表示 TiDB 中同时允许的最大客户端连接数,用于资源控制。 +- 默认情况下,该变量值为 `0` 表示不限制客户端连接数。当本变量的值大于 `0` 且客户端连接数到达此值时,TiDB 服务端将会拒绝新的客户端连接。 ### `max_execution_time` @@ -1061,6 +1061,14 @@ MPP 是 TiFlash 引擎提供的分布式计算框架,允许节点之间的数 - 默认值:`ON` - 这个变量用于控制是否让 TiDB 使用并发 DDL 语句。在开启并发 DDL 语句后,DDL 语句的执行流程有所改变,DDL 语句不容易被其他 DDL 语句阻塞,并且能够同时添加多个索引。 +### `tidb_enable_ddl` + +- 作用域:GLOBAL +- 是否持久化到集群:否,仅作用于当前连接的 TiDB 实例 +- 默认值: `ON` +- 可选值:`OFF`,`ON` +- 用于设置该 TiDB 服务器是否运行 DDL 语句。 + ### `tidb_enable_enhanced_security` - 作用域:NONE @@ -1310,7 +1318,7 @@ MPP 是 TiFlash 引擎提供的分布式计算框架,允许节点之间的数 - 是否持久化到集群:是 - 默认值:`OFF` - 这个变量控制是否为读数据的算子开启动态内存控制功能。读数据的算子默认启用 [`tidb_distsql_scan_concurrency`](/system-variables.md#tidb_distsql_scan_concurrency) 所允许的最大线程数来读取数据。当单条 SQL 语句的内存使用每超过 [`tidb_mem_quota_query`](/system-variables.md#tidb_mem_quota_query) 一次,读数据的算子会停止一个线程。 -- 当读数据的算子只剩 1 个线程且当单条 SQL 语句的内存使用继续超过 `tidb_mem_quota_query` 时,该 SQL 语句会触发其它的内存控制行为,例如[落盘](/tidb-configuration-file.md#oom-use-tmp-storage)。 +- 当读数据的算子只剩 1 个线程且当单条 SQL 语句的内存使用继续超过 [`tidb_mem_quota_query`](/system-variables.md#tidb_mem_quota_query) 时,该 SQL 语句会触发其它的内存控制行为,例如[落盘](/system-variables.md#tidb_enable_tmp_storage_on_oom)。 - 该变量在单条查询仅涉及读数据的情况下,对内存控制效果较好。若还存在额外的计算操作(如连接、聚合等),打开该变量可能会导致内存不受 `tidb_mem_quota_query` 控制,加剧 OOM 风险。 ### `tidb_enable_slow_log` @@ -1379,6 +1387,15 @@ Query OK, 0 rows affected (0.09 sec) - 默认值:`OFF` - 这个变量用于控制写 SQL 中的读取是否会下推到 TiFlash。 +### `tidb_enable_tmp_storage_on_oom` + +- 作用域:GLOBAL +- 是否持久化到集群:是 +- 默认值:`ON` +- 可选值:`OFF`,`ON` +- 设置是否在单条 SQL 语句的内存使用超出系统变量 [`tidb_mem_quota_query`](/system-variables.md#tidb_mem_quota_query) 限制时为某些算子启用临时磁盘。 +- 在 v6.3.0 之前这个开关可通过 TiDB 配置文件中的 `oom-use-tmp-storage` 项进行配置。在升级到 v6.3.0 及更新的版本后,集群会自动使用原 `oom-use-tmp-storage` 的值来初始化该开关,配置文件中 `oom-use-tmp-storage` 的新设置不再影响该开关。 + ### `tidb_enable_top_sql` 从 v5.4.0 版本开始引入 > **警告:** @@ -1770,7 +1787,6 @@ v5.0 后,用户仍可以单独修改以上系统变量(会有废弃警告) ### `tidb_last_txn_info` 从 v4.0.9 版本开始引入 - 作用域:SESSION -- 是否持久化到集群:否 - 类型:字符串 - 此变量用于获取当前会话中最后一个事务的信息。这是一个只读变量。事务信息包括: - 事务的范围 @@ -1912,8 +1928,8 @@ v5.0 后,用户仍可以单独修改以上系统变量(会有废弃警告) - 作用域:GLOBAL - 是否持久化到集群:否,仅作用于当前连接的 TiDB 实例 - 默认值:`0.8` -- TiDB 内存使用占总内存的比例超过一定阈值时会报警。该功能的详细介绍和使用方法可以参考 [`memory-usage-alarm-ratio`](/tidb-configuration-file.md#memory-usage-alarm-ratio-从-v409-版本开始引入)。 -- 该变量的初始值可通过 [`memory-usage-alarm-ratio`](/tidb-configuration-file.md#memory-usage-alarm-ratio-从-v409-版本开始引入) 进行配置。 +- TiDB 内存使用占总内存的比例超过一定阈值时会报警。该功能的详细介绍和使用方法可以参考 [`tidb_memory_usage_alarm_ratio`](/tidb-configuration-file.md#tidb_memory_usage_alarm_ratio)。 +- 该变量的初始值可通过 [`tidb_memory_usage_alarm_ratio`](/tidb-configuration-file.md#tidb_memory_usage_alarm_ratio) 进行配置。 ### `tidb_merge_join_concurrency` @@ -2380,7 +2396,6 @@ explain select * from t where age=5; ### `tidb_read_consistency` New in v5.4.0 - 作用域:SESSION -- 是否持久化到集群:否 - 类型:字符串 - 默认值:`strict` - 此变量用于控制自动提交的读语句的读一致性。 diff --git a/tidb-configuration-file.md b/tidb-configuration-file.md index ba7ec89e4c04..6564346762e9 100644 --- a/tidb-configuration-file.md +++ b/tidb-configuration-file.md @@ -26,6 +26,10 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ ### `oom-use-tmp-storage` +> **警告:** +> +> 自 v6.3.0 起,该配置项被废弃,其功能由系统变量 [`tidb_enable_tmp_storage_on_oom`](/system-variables.md#tidb_enable_tmp_storage_on_oom) 代替。集群升级到 v6.3.0 及之后的版本后,会自动继承升级前的 `oom-use-tmp-storage` 设置,升级后再设置 `oom-use-tmp-storage` 将不生效。 + + 设置是否在单条 SQL 语句的内存使用超出系统变量 [`tidb_mem_quota_query`](/system-variables.md#tidb_mem_quota_query) 限制时为某些算子启用临时磁盘。 + 默认值:true @@ -33,7 +37,7 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ + 单条 SQL 语句的内存使用超出系统变量 [`tidb_mem_quota_query`](/system-variables.md#tidb_mem_quota_query) 限制时,某些算子的临时磁盘存储位置。 + 默认值:`<操作系统临时文件夹>/<操作系统用户ID>_tidb/MC4wLjAuMDo0MDAwLzAuMC4wLjA6MTAwODA=/tmp-storage`。其中 `MC4wLjAuMDo0MDAwLzAuMC4wLjA6MTAwODA=` 是对 `:/:` 进行 `Base64` 编码的输出结果。 -+ 此配置仅在 `oom-use-tmp-storage` 为 true 时有效。 ++ 此配置仅在系统变量 [`tidb_enable_tmp_storage_on_oom`](/system-variables.md#tidb_enable_tmp_storage_on_oom) 的值为 `ON` 时有效。 ### `tmp-storage-quota` @@ -61,6 +65,7 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ + 开启检查 utf8mb4 字符的开关,如果开启此功能,字符集是 utf8,且在 utf8 插入 mb4 字符,系统将会报错。 + 默认值:true ++ 自 v6.1.0 起,utf8mb4 字符检查改为通过 TiDB 配置项 `instance.tidb_check_mb4_value_in_utf8` 或系统变量 `tidb_check_mb4_value_in_utf8` 进行设置。`check-mb4-value-in-utf8` 仍可使用,但如果同时设置了 `check-mb4-value-in-utf8` 与 `instance.tidb_check_mb4_value_in_utf8`,TiDB 将采用 `instance.tidb_check_mb4_value_in_utf8` 的值。 ### `treat-old-version-utf8-as-utf8mb4` @@ -108,6 +113,7 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ + TiDB 中同时允许的最大客户端连接数,用于资源控制。 + 默认值:0 + 默认情况下,TiDB 不限制客户端连接数。当本配置项的值大于 `0` 且客户端连接数到达此值时,TiDB 服务端将会拒绝新的客户端连接。 ++ 自 v6.2.0 起,客户端连接数已改用配置项 [`instance.max_connections`](/tidb-configuration-file.md#max_connections) 或系统变量 [`max_connections`](/system-variables.md#max_connections) 进行设置。`max-server-connections` 仍可使用,但如果同时设置了 `max-server-connections` 与 `instance.max_connections`,TiDB 将采用 `instance.max_connections` 的值。 ### `max-index-length` @@ -195,7 +201,8 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ + 是否开启慢查询日志 + 默认值:true -+ 可以设置成 `true` 或 `false` 来启用或或禁用慢查询日志。 ++ 可以设置成 `true` 或 `false` 来启用或禁用慢查询日志。 ++ 自 v6.1.0 起,已改用配置项 `instance.tidb_enable_slow_log` 或系统变量 `tidb_enable_slow_log` 来设置是否开启慢查询日志。`enable-slow-log` 仍可使用,但如果同时设置了 `enable-slow-log` 与 `instance.tidb_enable_slow_log`,TiDB 将采用 `instance.tidb_enable_slow_log` 的值。 ### `slow-query-file` @@ -208,12 +215,13 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ + 输出慢日志的耗时阈值。 + 默认值:300ms + 当查询大于这个值,就会当做是一个慢查询,输出到慢查询日志。 ++ 自 v6.1.0 起,已改用配置项 `instance.tidb_slow_log_threshold` 或系统变量 `tidb_slow_log_threshold` 来设置输出慢日志的耗时阈值。`slow-threshold` 仍可使用,但如果同时设置了 `slow-threshold` 与 `instance.tidb_slow_log_threshold`,TiDB 将采用 `instance.tidb_slow_log_threshold` 的值。 ### `record-plan-in-slow-log` + 在慢日志中记录执行计划 + 默认值:1 -+ 0 表示关闭,1 表示开启,默认开启,该值作为系统变量 [`tidb_record_plan_in_slow_log`](/system-variables.md#tidb_record_plan_in_slow_log) 的初始值。 ++ 自 v6.1.0 起,已改用配置项 [`instance.tidb_record_plan_in_slow_log`](/tidb-configuration-file.md#tidb_record_plan_in_slow_log) 或系统变量 [`tidb_record_plan_in_slow_log`](/system-variables.md#tidb_record_plan_in_slow_log) 来设置在慢日志中记录执行计划。`record-plan-in-slow-log` 仍可使用,但如果同时设置了 `record-plan-in-slow-log` 与 `instance.tidb_record_plan_in_slow_log`,TiDB 将采用 `instance.tidb_record_plan_in_slow_log` 的值。 ### `expensive-threshold` @@ -339,6 +347,7 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ + 当内存阈值报警功能开启时,如果配置项 [`server-memory-quota`](/tidb-configuration-file.md#server-memory-quota-从-v409-版本开始引入) 未设置,则内存报警阈值为 `memory-usage-alarm-ratio * 系统内存大小`;如果 `server-memory-quota` 被设置且大于 0,则内存报警阈值为 `memory-usage-alarm-ratio * server-memory-quota`。 + 当 TiDB 检测到 tidb-server 的内存使用超过了阈值,则会认为存在内存溢出的风险,会将当前正在执行的所有 SQL 语句中内存使用最高的 10 条语句和运行时间最长的 10 条语句以及 heap profile 记录到目录 [`tmp-storage-path/record`](/tidb-configuration-file.md#tmp-storage-path) 中,并输出一条包含关键字 `tidb-server has the risk of OOM` 的日志。 + 该值作为系统变量 [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) 的初始值。 ++ 自 v6.1.0 起,已改用配置项 [`instance.tidb_memory_usage_alarm_ratio`](/tidb-configuration-file.md#tidb_memory_usage_alarm_ratio) 或系统变量 [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) 来设置 tidb-server 实例内存使用占总内存比例的报警阈值。`memory-usage-alarm-ratio` 仍可使用,但如果同时设置了 `memory-usage-alarm-ratio` 与 `instance.tidb_memory_usage_alarm_ratio`,TiDB 将采用 `instance.tidb_memory_usage_alarm_ratio` 的值。 ### `txn-entry-size-limit` 从 v5.0 版本开始引入 @@ -410,6 +419,7 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ + 把所有的语句优先级设置为 force-priority 的值。 + 默认值:NO_PRIORITY + 可选值:默认值 NO_PRIORITY 表示不强制改变执行语句的优先级,其它优先级从低到高可设置为 LOW_PRIORITY、DELAYED 或 HIGH_PRIORITY。 ++ 自 v6.1.0 起,已改用配置项 [`instance.tidb_force_priority`](/tidb-configuration-file.md#tidb_force_priority) 或系统变量 [`tidb_force_priority`](/system-variables.md#tidb_force_priority) 来将所有语句优先级设为 force-priority 的值。`force-priority` 仍可使用,但如果同时设置了 `force-priority` 与 `instance.tidb_force_priority`,TiDB 将采用 `instance.tidb_force_priority` 的值。 ### `distinct-agg-push-down` @@ -672,6 +682,69 @@ TiDB 服务状态相关配置。 + 默认值:["tikv", "tiflash", "tidb"],表示由优化器自动选择存储引擎。 + 可选值:"tikv", "tiflash", "tidb" 的组合,如:["tikv", "tidb"]、["tiflash", "tidb"]。 +## instance + +### `tidb_enable_collect_execution_info` + ++ 用于控制是否同时将各个执行算子的执行信息记录入 slow query log 中。 ++ 默认值:true ++ 在 v6.1.0 之前,该功能通过配置项 `enable-collect-execution-info` 进行设置。 + +### `tidb_enable_slow_log` + ++ 是否开启慢查询日志。 ++ 默认值:true ++ 可以设置成 `true` 或 `false` 来启用或禁用慢查询日志。 ++ 在 v6.1.0 之前,该功能通过配置项 `enable-slow-log` 进行设置。 + +### `tidb_slow_log_threshold` + ++ 输出慢日志的耗时阈值。 ++ 默认值:300 ++ 范围:`[-1, 9223372036854775807]` ++ 单位:毫秒 ++ 当查询大于这个值,就会当做是一个慢查询,输出到慢查询日志。 ++ 在 v6.1.0 之前,该功能通过配置项 `slow-threshold` 进行设置。 + +### `tidb_record_plan_in_slow_log` + ++ 在慢日志中记录执行计划。 ++ 默认值:1 ++ 0 表示关闭,1 表示开启,默认开启,该值作为系统变量 [`tidb_record_plan_in_slow_log`](/system-variables.md#tidb_record_plan_in_slow_log) 的初始值。 ++ 在 v6.1.0 之前,该功能通过配置项 `record-plan-in-slow-log` 进行设置。 + +### `tidb_force_priority` + ++ 把所有的语句优先级设置为系统变量 `tidb_force_priority` 的值。 ++ 默认值:NO_PRIORITY ++ 默认值 NO_PRIORITY 表示不强制改变执行语句的优先级,其它优先级从低到高可设置为 LOW_PRIORITY、DELAYED 或 HIGH_PRIORITY。 ++ 在 v6.1.0 之前,该功能通过配置项 `force-priority` 进行设置。 + +### `max_connections` + ++ TiDB 中同时允许的最大客户端连接数,用于资源控制。 ++ 默认值:0 ++ 取值范围:`[0, 100000]` ++ 默认情况下,TiDB 不限制客户端连接数。当本配置项的值大于 `0` 且客户端连接数到达此值时,TiDB 服务端将会拒绝新的客户端连接。 ++ 该值作为系统变量 [`max_connections`](/system-variables.md#max_connections) 的初始值。 ++ 在 v6.2.0 之前,该功能通过配置项 `max-server-connections` 进行设置。 + +### `tidb_memory_usage_alarm_ratio` + ++ tidb-server 实例内存使用占总内存的比例超过一定阈值时会报警。该配置项的有效范围为 `0` 到 `1`。如果配置该选项为 `0` 或 `1`,则表示关闭内存阈值报警功能。 ++ 默认值:0.8 ++ 当内存阈值报警功能开启时,如果配置项 [`server-memory-quota`](/tidb-configuration-file.md#server-memory-quota-从-v409-版本开始引入) 未设置,则内存报警阈值为 `tidb_memory_usage_alarm_ratio * 系统内存大小`;如果 `server-memory-quota` 被设置且大于 0,则内存报警阈值为 `tidb_memory_usage_alarm_ratio * server-memory-quota`。 ++ 当 TiDB 检测到 tidb-server 的内存使用超过了阈值,则会认为存在内存溢出的风险,会将当前正在执行的所有 SQL 语句中内存使用最高的 10 条语句和运行时间最长的 10 条语句以及 heap profile 记录到目录 [`tmp-storage-path/record`](/tidb-configuration-file.md#tmp-storage-path) 中,并输出一条包含关键字 `tidb-server has the risk of OOM` 的日志。 ++ 该值作为系统变量 [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) 的初始值。 ++ 在版本 v6.1.0 之前,该功能通过配置项 `memory-usage-alarm-ratio` 进行设置。 + +### `tidb_enable_ddl` + ++ 用于表示该 tidb-server 是否运行 DDL 语句。 ++ 默认值:true ++ 该值作为系统变量 [`tidb_enable_ddl`](/system-variables.md#tidb_enable_ddl) 的初始值。 ++ 在 v6.3.0 之前,该功能由配置项 `run-ddl` 进行设置。 + ## proxy-protocol PROXY 协议相关的配置项。 diff --git a/tiup/tiup-cluster-topology-reference.md b/tiup/tiup-cluster-topology-reference.md index 9f3fd158e6c3..04f74b018c8b 100644 --- a/tiup/tiup-cluster-topology-reference.md +++ b/tiup/tiup-cluster-topology-reference.md @@ -107,10 +107,10 @@ monitored: ```yaml server_configs: tidb: - run-ddl: true lease: "45s" split-table: true token-limit: 1000 + instance.tidb_enable_ddl: true tikv: log-level: "info" readpool.unified.min-thread-count: 1