配置管理
- TiDB配置
- 系统配置
- 集群配置
- 配置的存储位置
- 区分TiDB的系统参数和集群参数
- 系统参数
- 系统参数的作用域
- 系统参数的修改
- 集群参数
- 集群参数的修改
- 配置参数的查看
- 实验一: 在不同作用域下对数据库的系统参数进行修改
- session级别
- global级别
- 实验二: 修改集群配置
TiDB配置
系统配置
系统配置:
- 持久化到数据库中
- 不包括对PD,TiKV组件的参数。
auto_increment_increment
autocommit
auto_increment_offset
hostname
max_execution_time
....
集群配置
集群配置:
存储到各个节点配置文件上,需要重启才生效
normal-concurrency
index-limit
...
high-concurrency
...
client-urls
...
配置的存储位置
区分TiDB的系统参数和集群参数
-
系统配置
- 一部分存储在TiDB数据库的kv存储中
- 专指TiDB-Server的参数,不包含TiKV和PD。
- 一部分参数的修改不需要重启即可持久化
- 有作用域范围
- 可以通过MySQL客户端进行修改
- …
-
集群配置
- 全部参数存储在TiDB-Server,TiKV 和 PD的配置文件中。
- 包含TiDB-Server,TiKV 和 PD 所有配置文件的参数
- 必须通过节点上的配置文件,之后重启节点方可生效
- 没有作用域范围。
- 必须通过TiUP edit-config和 tiup reload进行修改
- …
系统参数
系统参数的作用域
系统参数的修改
- GLOBAL 作用域参数修改:
set @@global.tidb_distsql_scan_concurrency=10;
set global tidb_distsql_scan_concurrency=10;
- SESSION 作用域参数修改
set tidb_distsql_scan_concurrency=10;
set SESSION tidb_distsql_scan_concurrency=10;
集群参数
集群参数都是全局的,修改后需要reload并重启集群
集群参数的修改
- 第一步:以编辑模式打开该集群的配置文件
tiup cluster edit-config ${cluster-name}
- 第二步:设置参数。
tidb_servers:
- host: 10.0.1.11
port: 4000
config:
log.slow-threshold: 300
- 第三步: 执行reload 命令滚动分发配置、重启相应组件:
tiup cluster reload ${cluster-name} [-N <nodes>] [-R <roles>]
配置参数的查看
可以通过SQL语句 show config 来直接查看集群所有实例的配置信息
show config
show config like 'tikv'
show config where name = 'raftstore.capacity';
实验一: 在不同作用域下对数据库的系统参数进行修改
session级别
session 级别参数的修改只影响当前会话,对于其他会话是不受影响的
[root@tidb ~]# mysql --host 192.168.16.12 --port 4000 -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 407
Server version: 5.7.25-TiDB-v6.1.0 TiDB Server (Apache License 2.0) Community Edition, MySQL 5.7 compatible
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use test;
Database changed
mysql> create table t1( a int not null primary key auto_increment);
Query OK, 0 rows affected (0.14 sec)
mysql> show variables like 'auto_increment_increment';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 1 |
+--------------------------+-------+
1 row in set (0.00 sec)
mysql> insert into t1 values();
Query OK, 1 row affected (0.03 sec)
mysql> insert into t1 values();
Query OK, 1 row affected (0.01 sec)
mysql> select * from t1;
+---+
| a |
+---+
| 1 |
| 2 |
+---+
2 rows in set (0.00 sec)
mysql> set auto_increment_increment=10;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into t1 values();
Query OK, 1 row affected (0.01 sec)
mysql> insert into t1 values();
Query OK, 1 row affected (0.01 sec)
mysql> select * from t1;
+----+
| a |
+----+
| 1 |
| 2 |
| 11 |
| 21 |
+----+
4 rows in set (0.00 sec)
另外一个会话,打开其他终端
session 级别参数的修改只影响当前会话,对于其他会话是不受影响的
[root@tidb ~]# mysql --host 192.168.16.12 --port 4000 -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 409
Server version: 5.7.25-TiDB-v6.1.0 TiDB Server (Apache License 2.0) Community Edition, MySQL 5.7 compatible
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show variables like 'auto_increment_increment';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 1 |
+--------------------------+-------+
1 row in set (0.08 sec)
mysql> insert into t1 values();
Query OK, 1 row affected (0.01 sec)
mysql> insert into t1 values();
Query OK, 1 row affected (0.01 sec)
mysql> select * from t1;
+----+
| a |
+----+
| 1 |
| 2 |
| 11 |
| 21 |
| 22 |
| 23 |
+----+
6 rows in set (0.00 sec)
global级别
global 全局修改,并不会影响当前会话的配置
mysql> set global auto_increment_increment=10;
Query OK, 0 rows affected (0.06 sec)
mysql> show variables like 'auto_increment_increment';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 1 |
+--------------------------+-------+
1 row in set (0.00 sec)
global的参数修改,会影响新的连接会话
[root@tidb ~]# mysql --host 192.168.16.12 --port 4000 -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 413
Server version: 5.7.25-TiDB-v6.1.0 TiDB Server (Apache License 2.0) Community Edition, MySQL 5.7 compatible
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show variables like 'auto_increment_increment';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 10 |
+--------------------------+-------+
1 row in set (0.00 sec)
,global全局参数修改是会持久化的,所以数据库重启后这个参数也是修改后的
实验二: 修改集群配置
使用tiup config 和tiup reload 修改所有TiKV节点的配置,配置参数名为log-level,默认值是info,将其修改为warning。
1、进入TiKV -Server,打开配置文件,通常位置在/tidb-deploy/tikv-port/conf。
注意: 这里只是查看,不是在这修改
sed -n '/log/p' tikv.toml
log-level= "info"
2、编辑配置文件,修改变量
tiup cluster edit-config tidb-test
注意:使用方法跟vi 是一样的
3、加载参数,使其生效
tiup cluster reload 。 这一步会重启所有TiKV节点。
tiup cluster relod tidb-test
4、再次查看
sed -n '/log/p' tikv.toml
log-level= "warning"