tidb的tidb组件的配置文件详解

###############

 线上目录配置:

[work@10.10.10.10 tidb-4000]$ tree
.
├── bin
│   └── tidb-server
├── conf
│   ├── cluster.conf
│   └── tidb.toml
├── log
│   ├── tidb-2021-04-08T00-47-00.241.log
│   ├── tidb-2021-04-18T00-56-52.252.log
│   ├── tidb-2021-05-02T00-45-05.759.log
│   ├── tidb-2021-05-12T00-53-14.403.log
│   ├── tidb-2021-06-03T01-46-40.885.log
│   ├── tidb-2021-06-09T05-22-31.200.log
│   ├── tidb-2021-06-09T06-10-51.666.log
│   ├── tidb-2021-06-09T07-58-11.618.log
│   ├── tidb-2021-06-09T10-04-06.202.log
│   ├── tidb-2021-06-09T10-55-25.922.log
│   ├── tidb-2021-06-09T11-30-06.829.log
│   ├── tidb-2021-06-09T12-39-52.668.log
│   ├── tidb-2021-06-09T13-37-27.505.log
│   ├── tidb-2021-06-09T14-29-26.031.log
│   ├── tidb-2021-06-09T15-26-53.880.log
│   ├── tidb-2021-06-13T00-54-49.814.log
│   ├── tidb-2021-07-02T00-51-44.270.log
│   ├── tidb-2021-09-01T15-02-37.474.log
│   ├── tidb.log
│   ├── tidb_slow-2021-08-21T14-05-26.423.log
│   ├── tidb_slow.log
│   └── tidb_error.log
└── scripts
    └── tidb_start.sh

 启动脚本:

[work@10.10.10.10 tidb-4000]$ cat scripts/tidb_start.sh 
#!/bin/bash
set -e

# WARNING: This file was auto-generated. Do not edit!
#          All your edit might be overwritten!
DEPLOY_DIR=/home/work/tidb/tidb-4000

cd "${DEPLOY_DIR}" || exit 1
exec numactl --cpunodebind=1 --membind=1 env GODEBUG=madvdontneed=1 bin/tidb-server 
    -P 4000 
    --status="10080" 
    --host="0.0.0.0" 
    --advertise-address="10.10.10.10" 
    --store="tikv" 
    --path="10.10.10.20:2379,10.10.10.21:2379,10.10.10.22:2379" 
    --log-slow-query="log/tidb_slow.log" 
    --config=conf/tidb.toml 
    --log-file="/home/work/tidb/tidb-4000/log/tidb.log" 2>> "/home/work/tidb/tidb-4000/log/tidb_error.log"

 tidb.toml文件:

[work@10.10.10.10 tidb-4000]$ cat conf/tidb.toml 
# WARNING: This file is auto-generated. Do not edit! All your modification will be overwritten!
# You can use 'tiup cluster edit-config' and 'tiup cluster reload' to update the configuration
# All configuration items you want to change can be added to:
# server_configs:
#   tidb:
#     aa.b1.c3: value
#     aa.b2.c4: value
[binlog]
enable = false
ignore-error = false

[log]
slow-query-file = "tidb-slow.log"
slow-threshold = 300

[performance]
max-procs = 20

[pessimistic-txn]
enable = false
max-retry-count = 256

[txn-local-latches]
capacity = 2048000
enabled = true

max-server-connections

  • TiDB 中同时允许的最大客户端连接数,用于资源控制。
  • 默认值:0
  • 默认情况下,TiDB 不限制客户端连接数。当本配置项的值大于 0 且客户端连接数到达此值时,TiDB 服务端将会拒绝新的客户端连接。

max-index-length

  • 用于设置新建索引的长度限制。
  • 默认值:3072
  • 单位:Byte
  • 目前的合法值范围 [3072, 3072*4]。MySQL 和 TiDB v3.0.11 之前版本(不包含 v3.0.11)没有此配置项,不过都对新建索引的长度做了限制。MySQL 对此的长度限制为 3072,TiDB 在 v3.0.7 以及之前版本该值为 3072*4,在 v3.0.7 之后版本(包含 v3.0.8、v3.0.9 和 v3.0.10)的该值为 3072。为了与 MySQL 和 TiDB 之前版本的兼容,添加了此配置项。

table-column-count-limit 从 v5.0 版本开始引入

  • 用于设置单个表中列的数量限制
  • 默认值:1017
  • 目前的合法值范围 [1017, 4096]

index-limit 从 v5.0 版本开始引入

  • 用于设置单个表中索引的数量限制
  • 默认值:64
  • 目前的合法值范围 [64, 512]

compatible-kill-query

  • 设置 KILL 语句的兼容性。
  • 默认值:false
  • TiDB 中 KILL xxx 的行为和 MySQL 中的行为不相同。为杀死一条查询,在 TiDB 里需要加上 TIDB 关键词,即 KILL TIDB xxx。但如果把 compatible-kill-query 设置为 true,则不需要加上 TIDB 关键词。
  • 这种区别很重要,因为当用户按下 Ctrl+C 时,MySQL 命令行客户端的默认行为是:创建与后台的新连接,并在该新连接中执行 KILL 语句。如果负载均衡器或代理已将该新连接发送到与原始会话不同的 TiDB 服务器实例,则该错误会话可能被终止,从而导致使用 TiDB 集群的业务中断。只有当您确定在 KILL 语句中引用的连接正好位于 KILL 语句发送到的服务器上时,才可以启用 compatible-kill-query

txn-entry-size-limit 从 v5.0 版本开始引入

  • TiDB 单行数据的大小限制
  • 默认值:6291456
  • 单位:Byte
  • 事务中单个 key-value 记录的大小限制。若超出该限制,TiDB 将会返回 entry too large 错误。该配置项的最大值不超过 125829120(表示 120MB)。
  • 注意,TiKV 有类似的限制。若单个写入请求的数据量大小超出 raft-entry-max-size,默认为 8MB,TiKV 会拒绝处理该请求。当表的一行记录较大时,需要同时修改这两个配置。

txn-total-size-limit

  • TiDB 单个事务大小限制
  • 默认值:104857600
  • 单位:Byte
  • 单个事务中,所有 key-value 记录的总大小不能超过该限制。该配置项的最大值不超过 10737418240(表示 10GB)。注意,如果使用了以 Kafka 为下游消费者的 binlog,如:arbiter 集群,该配置项的值不能超过 1073741824(表示 1GB),因为这是 Kafka 的处理单条消息的最大限制,超过该限制 Kafka 将会报错。

max-txn-ttl

  • 单个事务持锁的最长时间,超过该时间,该事务的锁可能会被其他事务清除,导致该事务无法成功提交。
  • 默认值:3600000
  • 单位:毫秒
  • 超过此时间的事务只能执行提交或者回滚,提交不一定能够成功。

committer-concurrency

  • 在单个事务的提交阶段,用于执行提交操作相关请求的 goroutine 数量
  • 默认值:128
  • 若提交的事务过大,事务提交时的流控队列等待耗时可能会过长,可以通过调大该配置项来加速提交。

stmt-count-limit

  • TiDB 单个事务允许的最大语句条数限制。
  • 默认值:5000
  • 在一个事务中,超过 stmt-count-limit 条语句后还没有 rollback 或者 commit,TiDB 将会返回 statement count 5001 exceeds the transaction limitation, autocommit = false 错误。该限制只在可重试的乐观事务中生效,如果使用悲观事务或者关闭了事务重试,事务中的语句数将不受此限制。

##########

 

###############

igoodful@qq.com
原文地址:https://www.cnblogs.com/igoodful/p/15421141.html