title | aliases | summary | |
---|---|---|---|
TiUP 故障排查 |
|
TiUP 故障排查包括命令故障排查和集群组件故障排查。命令故障包括强制刷新组件列表和版本信息,网络中断导致的下载问题,以及 checksum 错误。集群组件故障包括 SSH 私钥问题,升级中断和缺失组件文件的解决方法。可通过 Github Issues 或 AskTUG 求助。 |
本文介绍 TiUP 使用过程中一些常见的故障及排查方式,如果本文不包含你目前遇到的问题,可以通过以下方式求助:
- Github Issues 新建一个 Issue。
- 在 AskTUG 提交你的问题。
TiUP 并不会每次都从镜像服务器更新最新的组件列表,可以通过 tiup list
来强制刷新组件列表。
同 1.1 一样,组件的版本信息只会在本地无缓存的情况下从镜像服务器获取,可以通过 tiup list <component>
刷新组件列表。
如果下载组件的过程中网络中断,可能是由于网络不稳定导致的,可以尝试重新下载,如果多次不能成功下载,请反馈到 Github Issues,可能是由于 CDN 服务器导致的。
由于 CDN 会有短暂的缓存时间,导致新的 checksum 文件和组件包不匹配,建议过 5 分钟后重试,如果依然不匹配,请反馈到 Github Issues。
由于部署时会向远程主机上传组件包,以及进行初始化,这个过程需要连接到远程主机,该错误是由于找不到连接到远程主机的 SSH 私钥导致的。请确认你是否通过 tiup cluster deploy -i identity_file
指定该私钥。
- 如果没有指定
-i
参数,可能是由于 TiUP 没有自动找到私钥路径,建议通过-i
显式指定私钥路径。 - 如果指定了
-i
参数,可能是由于指定的私钥不能登录,可以通过手动执行ssh -i identity_file user@remote
命令来验证。 - 如果是通过密码登录远程主机,请确保指定了
-p
参数,同时输入了正确的登录密码。
为了避免用户误用,TiUP Cluster 不支持指定部分节点升级,所以升级失败之后,需要重新进行升级操作,包括升级过程中的幂等操作。
升级操作会分为以下几步:
- 首先备份所有节点的老版本组件
- 分发新的组件到远程
- 滚动重启所有组件
如果升级操作在滚动重启时中断,可以不用重复进行 tiup cluster upgrade
操作,而是通过 tiup cluster restart -N <node1> -N <node2>
来重启未完成重启的节点。如果同一组件的未重启节点数量比较多,也可以通过 tiup cluster restart -R <component>
来重启某一个类型的组件。
这种情况可能是由于之前的集群是由 TiDB Ansible 迁移过来的,且之前 TiDB Ansible 未部署 exporter 导致的。要解决这种情况,可以暂时通过手动从其他节点复制缺少的文件到新的节点。后续我们会在迁移过程中补全缺失的组件。