问题大概解决思路如下我查看下了ddl的执行情况
ADMIN SHOW DDL jobs;
找到耗时占用时间
取消掉那个job
admin cancel ddl jobs 6560;
然后就正常了,应该是和pd任务调度执行有点关系吧,这是这次解决的思路,仅供大家参考
帮忙执行下这个语句:curl http://{TiDBIP}:10080/info/all 同时另外拿下 DDL owner 节点的 tidb.log (owner 判断通过 admin show ddl 来看)。
另外可以自己先判断下哈:
有的时候执行 DDL 会很慢可能原因如下:
1、多个 DDL 语句一起执行的时候,后面的几个 DDL 语句会比较慢。原因是当前 TiDB 集群中 DDL 操作是串行执行的。
2、 在正常集群启动后,第一个 DDL 操作的执行时间可能会比较久,一般在 30s 左右,这个原因是刚启动时 TiDB 在竞选处理 DDL 的 leader。
3、由于停 TiDB 时不能与 PD 正常通信(包括停电情况)或者用 kill -9 指令停 TiDB 导致 TiDB 没有及时从 PD 清理注册数据,那么会影响 TiDB 启动后 10min 内的 DDL 语句处理时间。这段时间内运行 DDL 语句时,每个 DDL 状态变化都需要等待 2 * lease(默认 lease = 45s)。
4、当集群中某个 TiDB 与 PD 之间发生通信问题,即 TiDB 不能从 PD 及时获取或更新版本信息,那么这时候 DDL 操作的每个状态处理需要等待 2 * lease。
执行返回信息如下
{
"servers_num": 1,
"owner_id": "430c029c-c879-4901-be61-e8d6abef36de",
"is_all_server_version_consistent": true,
"all_servers_info": {
"430c029c-c879-4901-be61-e8d6abef36de": {
"version": "5.7.25-TiDB-v4.0.7",
"git_hash": "ed939f3f11599b5a38352c5c160c917df3ebf3eb",
"ddl_id": "430c029c-c879-4901-be61-e8d6abef36de",
"ip": "192.168.8.73",
"listening_port": 4000,
"status_port": 10080,
"lease": "45s",
"binlog_status": "Off",
"start_timestamp": 1603280596
}
}
}
日志文件如下
由于日志100多m上传到百度网盘了
链接: 百度网盘-链接不存在 提取码: ieya
麻烦帮忙看看,谢谢了
curl http://{TiDBIP}:10080/ddl/history 这个在帮忙执行下
好的。这个比较大,等我上传我挂下连接~~
链接:https://pan.baidu.com/s/1mv3ZYj7DVRIneakhfVld8Q
提取码:rqem
ddl 连接~~!~麻烦你了~~
正在分析,稍等。