TiDB修改配置参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TiDB修改配置参数相关的知识,希望对你有一定的参考价值。

参考技术A

在TiDB 中,“修改配置参数”似乎是个不精准的说法,它实际包含了以下内容:

TiDB的配置修改比较混乱,先做个总结,再介绍具体内容:

查看TiDB系统变量:

集群中所有 TiDB Server 都生效;

持久化在哪里?
持久化在 kv 存储中,跟数据一样持久化了,不会持久化在 conf/tidb.toml 配置文件中。所以不用担心 tiup upgrade 和 tiup reload 等运维操作会把配置文件覆盖,不会导致修改失效,因为这个修改的持久化不依赖配置文件。

有些参数的作用域只有会话级别。也就是只能会话级修改,这不代表着不能被动态修改。

修改方式和会话级修改一样:

修改 Instance 级别的参数修改不会持久化,那么如何持久化呢?
a. 手工修改 TiDB 的配置文件:

b. 并使用 tiup edit-config 来修改对应的配置项,不需要做 tiup reload:

内容如下:

目前查看官方文档,发现只有3个只读变量:hostname、tidb_config、tidb_current_ts,没法通过 set variables 修改。作用域比较奇怪,用法介绍也不清楚,看起来没有修改的必要。如果一定要修改可以通过 tiup 方法修改。

修改集群配置包括TiDB、TiKV 以及 PD 在内的各组件的配置进行修改。

使用 edit-config 命令来编辑参数,以编辑模式打开该集群的配置文件:

如果配置的生效范围为该组件全局,则配置到 server_configs,比如修改所有 tikv 的 log-level 为 waring(默认是 info):

如果配置的生效范围为某个节点,则配置到具体节点的 config 中。例如:

tiup reload 分发配置并滚动重启组件,无论是否可以动态修改的参数都会重启,并且默认会重启所有组件,可以选择指定节点或者组件:
tiup cluster reload $cluster-name [-N <nodes>] [-R <roles>]

示例中我们只修改 tikv 的 log-level 为 waring,所以用 -R tikv 指定只重启 tikv 节点:

set config 当前4.0版本属于实验性功能,不建议在生产使用: https://docs.pingcap.com/zh/tidb/stable/dynamic-config
目前只支持修改 TiKV 和 PD 的配置,TIDB的配置修改用上面的 set variables 方法。

查看当前参数设置:

用 set config 修改参数,会持久化到配置文件。log-level 无法动态修改,不会报错但是会有 warnings,对于不能动态修改的参数使用 tiup 进行修改:

动态修改示例:

虽然TiKV的配置文件 conf/tikv.toml 会持久化这个修改,但是为了防止tiup upgrade 和 tiup reload 等运维操作把配置文件覆盖导致修改失效,还需要执行 tiup edit-config 来编辑参数。

以上是关于TiDB修改配置参数的主要内容,如果未能解决你的问题,请参考以下文章

如何动态修改Mysql的配置参数

如何修改电脑配置参数和文件大小?

修改Docker容器启动配置参数

修改Docker容器启动配置参数

IDEA修改启动参数覆盖bootstrap配置文件参数

IDEA修改启动参数覆盖bootstrap配置文件参数