pd集群重搭后 经常 pd server out

确保pd leader所在机器 磁盘,cpu,网络不负载。

{
“header”: {
“cluster_id”: 7007337208426828864
},
“members”: [
{
“name”: “pd-3”,
“member_id”: 651080077813226255,
“peer_urls”: [
http://10.130.1.3:2380
],
“client_urls”: [
http://10.130.1.3:2379
],
“deploy_path”: “/tidb/tidb-deploy/pd-2379/bin”,
“binary_version”: “v5.3.3”,
“git_hash”: “eea08fba934fc1f857f5d2c062d749c36dd7e8b8”
},
{
“name”: “pd-4”,
“member_id”: 4195128538626044242,
“peer_urls”: [
http://10.130.1.4:2380
],
“client_urls”: [
http://10.130.1.4:2379
],
“deploy_path”: “/tidb/tidb-deploy/pd-2379/bin”,
“binary_version”: “v5.3.3”,
“git_hash”: “eea08fba934fc1f857f5d2c062d749c36dd7e8b8”
},
{
“name”: “pd-2”,
“member_id”: 9162498273012635160,
“peer_urls”: [
http://10.130.1.2:2380
],
“client_urls”: [
http://10.130.1.2:2379
],
“deploy_path”: “/tidb/tidb-deploy/pd-2379/bin”,
“binary_version”: “v5.3.3”,
“git_hash”: “eea08fba934fc1f857f5d2c062d749c36dd7e8b8”
},
{
“name”: “pd-5”,
“member_id”: 15583924563962473268,
“peer_urls”: [
http://10.130.1.5:2380
],
“client_urls”: [
http://10.130.1.5:2379
],
“deploy_path”: “/tidb/tidb-deploy/pd-2379/bin”,
“binary_version”: “v5.3.3”,
“git_hash”: “eea08fba934fc1f857f5d2c062d749c36dd7e8b8”
},
{
“name”: “pd-1”,
“member_id”: 16161409879978320974,
“peer_urls”: [
http://10.130.1.1:2380
],
“client_urls”: [
http://10.130.1.1:2379
],
“deploy_path”: “/tidb/tidb-deploy/pd-2379/bin”,
“binary_version”: “v5.3.3”,
“git_hash”: “eea08fba934fc1f857f5d2c062d749c36dd7e8b8”
}
],
“leader”: {
“name”: “pd-1”,
“member_id”: 16161409879978320974,
“peer_urls”: [
http://10.130.1.1:2380
],
“client_urls”: [
http://10.130.1.1:2379
],
“deploy_path”: “/tidb/tidb-deploy/pd-2379/bin”,
“binary_version”: “v5.3.3”,
“git_hash”: “eea08fba934fc1f857f5d2c062d749c36dd7e8b8”
},
“etcd_leader”: {
“name”: “pd-1”,
“member_id”: 16161409879978320974,
“peer_urls”: [
http://10.130.1.1:2380
],
“client_urls”: [
http://10.130.1.1:2379
],
“deploy_path”: “/tidb/tidb-deploy/pd-2379/bin”,
“binary_version”: “v5.3.3”,
“git_hash”: “eea08fba934fc1f857f5d2c062d749c36dd7e8b8”
}
}

如果还找不到问题,我就先部署1个单独pd
pdHttp.log (338.0 KB)

从tidb访问pd报错,当然是在tidb侧抓包了,开启抓包后,tidb就执行sql,tidb看到pd server timeout后,抓包停止。然后拿出来看看到底发给了哪个地址的pd。然后看看这个地址的pd是不是正常,是leader还是follower,对应的日志拿出来看看。看看是没收到tidb的请求,还是收到了,但是因为不是leader,要转发,但是转发过程中出错了?如果转发过程中出错了,对应的错误又是什么?如果还是网络原因,就再在这个pd上抓包。

一句话总结:我要从广州到北京发个快递,发不过去。那怎么办呢?看看走到了哪里?遇到了什么问题没走过去。解决了问题是不是就通了。

抓包这个东东不太熟,请教下 截图是不是这种就说明 访问其他节点的pd 出现了问题了

可以单独部署一个pd 完成后将leader 切换过去。确保不是资源问题导致

这处理过程能再详细说说吗 ,比如用的什么命令,遇到了什么错误然后如何处理的

先是 cluster scale-in tidb-cluster -N xxx --force
然后 tiup cluster scale-out tidb-cluster scale221112.yaml --user root -p
但是发现 --force 的ip 直接扩容是不行
然后缩容 scale-in
删除 pd-data
然后恢复 tiup pd-recover -endpoints xxxx -cluster-id xxx -alloc-id xxx
发现 -cluster-id 错了
删除 pd-data
然后继续恢复 tiup pd-recover -endpoints xxxx -cluster-id xxx -alloc-id xxx
集群display 就正常

:scream:

然后就出了这么一档子问题么? 就 PD 死活不好用

对的 理解不了为什么

首先看工具定义
PD Recover 是对 PD 进行灾难性恢复的工具,用于恢复无法正常启动或服务的 PD 集群。

那么恢复的提前是,必须能有正确的环境信息和参数,设想 PD Recover 给了错误的参数会导致什么?
PD 恢复后,肯定无法正常提供服务的。(错误的参数,会影响存活其他节点,逻辑上已经乱了)

这种情况如果有条件,不如直接扩容,把 PD leader 直接驱逐到新扩容的节点上,在缩容掉之前旧的节点,会更靠谱点

扩容新节点 然后指定leader 做过了,没起作用

只有部分表出现问题 ,我新建表也有这个问题

这些ID 现在都没错吧。

alloc-id 之前是8002 然后我设置8002 现在还能核对我的对不对吗 cluster-id 是对的

cluster id 是删除目录之前的id?
alloc id 要比查找出来的最大id 还要设置的大些。
重建之后。集群全部重启了吗?

clusterid 是之前的。集群重启过了

最后实在没办法了,可以这样试试
(1)重新在pd节点部署套集群,只写PD组件信息,注意exportr 等组件端口别冲突
(2) 使用pd-recover 恢复 指定使用新建的pd集群。tidb/tikv组件的run_xx.sh脚本可能要调整指向。alloc-id增大 比如前面加1
(3) 把以前的pd全部缩容
上面弄完了会有2个集群信息 一个只有pd 一个包含所有,正常的包含所有的启停时也能把pd实例启停。

可以给下微信 或者 电话 吗 ,我想详细问下

大概过程是这样,我以前做过 具体的步骤也没记,我翻翻微信里