【 TiDB 使用环境】生产环境
【 TiDB 版本】v6.3.0
【复现路径】我的DDL任务卡住,杀死进程、修改owner_id,重启集群都不行。看见以前有人遇到相同问题。解决方案是修改ETCD里的key,求这个操作步骤。
pd 的 etcd ?
https://docs.pingcap.com/zh/tidb/stable/tidb-control#etcd-命令
在tidb-ctl工具下,不过我觉得你还是需要慎重使用,起码应该确认下是不是etcd的问题。
目前碰上的ddl卡住,有2类。
1,因为锁的问题导致的卡住。这类一般重启能解决。
2,是因为tikv中对应表的mvcc版本太多,导致的ddl扫描时间巨长,看上去就像是卡住了。这类重启也不能解决。单纯就是ddl执行扫描时间太长。所以重启了,也没效果。见下面这个帖子。
至少这两类常见的问题中没有关于etcd出问题的情况,这个etcd的bug大概率不是导致ddl卡住的原因。你还需要确认一下到底原因为何,不建议上来就考虑删除etcd中的key。
这个看了,就是不清楚该怎么用。
那这么说吧,你打算删etcd中的那个key呢?
总不能都删吧?有怀疑对象吗?
有两个13096512和13096513,我怀疑是这两个导致的。
那就先
tiup ctl:v6.3.0 tidb
安装tidb-ctl,然后
tiup ctl:v6.3.0 tidb etcd delkey “key值”
文档中提到只有2个目录下的key可以被删除
tidb-ctl etcd delkey
删除 etcd 中的 KEY,只有前缀以/tidb/ddl/fg/owner/
和/tidb/ddl/all_schema_versions/
开头才允许被删除。
我现在也不确定在那个目录下。没处理过这类情况。
虽然我把方法给你了,但我始终不建议你这么做,我总觉得etcd不是根因,甚至有可能添乱。
你的心情我非常理解,不过越是这个时候,越不能忙中出错。不然情况越来越糟。供参考吧。
确实需要确认下是不是etcd的问题
如果真的要删除的话可以试一下 etcdctl
不可能重启集群也不行啊,你是用tiup cluster restart重启的吗
ETCD相关命令
查询所有key
ETCDCTL_API=3 etcdctl get
“”
–from-key --keys-only --limit 1
#修改key的值
ETCDCTL_API=3 etcdctl --endpoints=$ENDPOINTS put web1 value1
删除指定key
ETCDCTL_API=3 etcdctl --endpoints=$ENDPOINTS del key
集群重启了很多次,都还在。
过一段时间会消失吗