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修改配置参数的主要内容,如果未能解决你的问题,请参考以下文章