Steve阿辉
(Ti D Ber Ofswr Vgr)
1
【 TiDB 使用环境】生产环境
【 TiDB 版本】6.1.2
【复现路径】做过哪些操作出现的问题。
我们昨天晚上有做参数修改,目前有两个操作行为,不知道是那个引起的,我们在mysql客户端上执行,set GLOBAL tidb_mem_quota_query = 10240000; 这个大小上9mb,至于为什么会这样,是因为我们开始的时候设置更大的值,但是每次查询的结果都没有修改。所以我们修改了很多次在后面删了几个0。
发现没有效果后,我们就去配置参数那边修改了两个参数,一个是tidb_mem_quota_query,一个是performance.txn-total-size-limit,然后滚动更新后发现tidb无法启动。就开始一直报错。
我们后来回去排查的时候,发现performance.txn-total-size-limit 设置的比tidb_mem_quota_query还小。
但是我们操作的时候有两个pd,两个tidb,3个tikv,有一台ip71服务器上安装了pd上和tidb,在我们滚动更新的时候是没有更新成功的 ,这时候另外一个tidb客户端70已经挂了,但是还可以通过71连接到tidb,但是会弹出内存溢出的错误。
之后重启了tidb集群,出现pd无法选举的问题。试了很多办法都没有办法解决,我们把整个集群,除了tikv的数据盘没有还原到25号凌晨2点的快照外,其他所有的盘都做了一次还原,也包括tiup的机器。
【遇到的问题:问题现象及影响】目前tipd节点无法启动,而其他节点都正常启动。我的推测是要么是系统表损坏了,要么是参数固化存到了tikv上,所以目前不知道如何修复,现在生产环境停摆,麻烦大家帮帮忙。
【资源配置】
【附件:截图/日志/监控】
wakaka
(Wakaka)
2
怎么修改的参数,不能用edit-config修改大点再reload吗?
Steve阿辉
(Ti D Ber Ofswr Vgr)
3
现在进入后台,编辑过参数,然后reload,但是仍然无法启动。
wakaka
(Wakaka)
6
后台是哪个后台,tiup edit-config修改过吗?
考试没答案
(Ti D Ber P Kfity Gq)
7
他说的 后台 也有可能是 conf/tom的文件。 我建议edit-config 添加参数。 然后 集群全部重启下看看吧
Steve阿辉
(Ti D Ber Ofswr Vgr)
9
修改过配置。
global:
user: tidb
ssh_port: 22
ssh_type: builtin
deploy_dir: /data/tidb-deploy
data_dir: /data/tidb-data
os: linux
monitored:
node_exporter_port: 9100
blackbox_exporter_port: 9115
deploy_dir: /data/tidb-deploy/monitor-9100
data_dir: /data/tidb-data/monitor-9100
log_dir: /data/tidb-deploy/monitor-9100/log
server_configs:
tidb:
binlog.enable: false
binlog.ignore-error: false
log.slow-threshold: 300
mem-quota-query: 1073741824
new_collations_enabled_on_first_bootstrap: false
performance.txn-total-size-limit: 1073741824
tikv:
readpool.coprocessor.use-unified-pool: true
readpool.storage.use-unified-pool: false
pd:
schedule.leader-schedule-limit: 4
schedule.region-schedule-limit: 2048
schedule.replica-schedule-limit: 64
tidb_dashboard: {}
tiflash: {}
tiflash-learner: {}
pump: {}
drainer: {}
cdc: {}
kvcdc: {}
grafana: {}
tidb_servers:
- host: 172.16.16.70
ssh_port: 22
port: 4000
status_port: 10080
deploy_dir: /data/tidb-deploy/tidb-4000
log_dir: /data/tidb-deploy/tidb-4000/log
arch: amd64
os: linux
tikv_servers:
- host: 172.16.16.80
ssh_port: 22
port: 20160
status_port: 20180
deploy_dir: /data/tidb-deploy/tikv-20160
data_dir: /data/tidb-data/tikv-20160
log_dir: /data/tidb-deploy/tikv-20160/log
arch: amd64
os: linux
- host: 172.16.16.81
ssh_port: 22
port: 20160
status_port: 20180
deploy_dir: /data/tidb-deploy/tikv-20160
data_dir: /data/tidb-data/tikv-20160
– INSERT –
这是目前的配置
Steve阿辉
(Ti D Ber Ofswr Vgr)
10
目前怀疑是这个参数设置过小,导致读取用户权限表都无法读取成功。但是我通过编辑tiup cluster edit-config tidb-prod,我刚另外的一个回复贴出了配置,你看下。目前我不知道如何做了。
Steve阿辉
(Ti D Ber Ofswr Vgr)
11
由于我们把tiup,tidb,pd,这些节点,包括tikv的系统盘都做了还原,所以真正能受影响的就是tikv的数据盘了,所以我们怀疑是参数持久化写入到了tikv导致无法启动,目前在寻求一个办法可以去修改tikv内,持久化到参数选项。
Steve阿辉
(Ti D Ber Ofswr Vgr)
12
从官方文档得知,现在配置文件的参数已经无法生效了,都在6.1版本中删除了,全部都持久化到系统变量进去了。https://docs.pingcap.com/zh/tidb/dev/release-6.1.0/#易用性
tidb_mem_quota_query
修改 增加 GLOBAL 作用域,变量值可以持久化到集群。
TiDB mem-quota-query
删除 转化为系统变量 tidb_mem_quota_query
。该配置项不再生效,如需修改,需修改对应的系统变量。求官方寻求一个在tidb无法启动,无法通过客户端修改变量情况下都修改方法。
改 Toml 文件。但是会被 tiup 刷掉。临时用吧 。
h5n1
(H5n1)
14
global variables 是固化到tikv, 只能通过tidb来修改。