集群迁移TiKV识别不到新的PD集群

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】v5.1.4
【复现路径】做过哪些操作出现的问题

  • 背景
    机房迁移,通过扩缩容方式,两个机房之间的延迟在1ms以内

  • 迁移步骤
    1. 扩容TiFlash, 缩容老TiFlash
    2. 扩容TiKV, 缩容老TiKV
    3. 扩容TiDB Server, 缩容老TiDB Server
    4. 扩容PD, 缩容老PD

  • 问题
    在第四步之后,老PD缩容, 新的TiKV节点识别到不到新的PD,在通过tiup 进行 reload时,leader一直驱除不掉

  • 部分日志

[2023/02/23 20:02:49.948 +08:00] [ERROR] [util.rs:592] ["connect failed"] [error="Grpc(RpcFailure(RpcStatus { code: 14-UNAVAILABLE, message: \"failed to connect to all addresses\", details: [] }))"] [endpoints=http://xxxxxx:2379]
[2023/02/23 20:02:49.948 +08:00] [INFO] [util.rs:544] ["connecting to PD endpoint"] [endpoints=http://xxxxxx:2379]

日志中的xxxxxx是老PD的地址,请教下,如何让新的TiKV识别到新的PD了,尝试过reload,卡住

需要在老的pd上重新修复pd服务器了

意思就是我要恢复老的PD节点?

对的是id 你需要先恢复pd服务器

的确如此,老 PD 下线过程如下:

  1. 在新 PD 加入到集群之后,为了让 TiKV 识别到新的 PD ,需要依次重启 TiKV

    确认方式:在 TiKV 机器上查看 –pd 参数是否已经有了新的PD地址
    $ ps -ef | grep tikv-server

  2. 下线老的 PD 节点,通过缩容 scale-out 方式

  3. TiKV 清理老 PD 信息

    重启所有的 TiKV

疑问:为啥有新 PD 加入到集群后,TiKV 客户端感知不到

我发你个文档 昨天我也刚过这个bug pd关机 pd文档坏了。tidb起不来后面我修复了pd 整个集群就好了

https://docs.pingcap.com/zh/tidb/v4.0/pd-recover

1 个赞

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。