删除 .tiup 目录后,重新安装tiup,使用 tiup cluster list 无法查看原有集群,如何将集群添加到tiup管理

【 TiDB 使用环境】生产环境
【 TiDB 版本】 v6.5.0
【遇到的问题:问题现象及影响】 .tiup 目录被整理删除,重新安装了新版本的tiup ,tiup cluster list 无法再显示之前部署的集群。
【资源配置】
【附件:截图/日志/监控】

元数据都保存在这里,删掉肯定就不能用了,参考这里恢复下吧

1 个赞

谢谢,我操作一下。

确下本次恢复的目的,是恢复 .tiup 中的元数据,此为管理集群的基础。有个这些元数据,新的 tiup 将会继续运维以前的集群,

恢复步骤

  1. 手写一下最终的集群 topo 文件,
  2. 需要批量将 instance 级别的 bin/{instance}-server 文件 mv ,解释可看 [2]
  3. 根据 tiup 部署集群步骤,进行 deploy 操作,解释可看 [3]

[2] 因为使用已发布的 tiup 进行部署,需要覆盖 instance 级别的 binary 文件,但是对正在运行的服务没有影响,替换过程中可能出现 Text file busy 问题,所以需要手动将所有的 binary 文件都 mv 成 old,或者其他名字(mv tidb-server tidb-server_old),此步骤务必保证操作完全,避免 deploy 出现问题。否则需要重复 2 / 3 步骤。

[3] 由于当前 tiup 并没有集群的元信息,所以 deploy 不会出现目录端口冲突。deploy 会下载指定版本的 binary 文件并覆盖到原集群。(因为目前是非常规 deploy 所以覆盖是可以理解的正常操作,upgrade 会将 bin 目录进行备份)

注意事项

  1. deploy 时 version 要指定正确,需要相同版本
  2. 所有节点的 binary 文件需要 mv
  3. 保证 topology 文件的完整性,与最终集群节点一致。请注意 deploy-dir/data_dir/port/status_port 等参数的编写。

手写一下最终的集群 topo 文件,
需要批量将 instance 级别的 bin/{instance}-server 文件 mv
根据 tiup 部署集群步骤,进行 deploy 操作

可以定期备份下 tiup 元数据

tiup cluster meta
Usage:
  meta [command]

Available Commands:
  backup      backup topology and other information of cluster
  restore     restore topology and other information of cluster

Flags:
  -h, --help   help for meta

Global Flags:
  -c, --concurrency int     max number of parallel tasks allowed (default 5)
      --format string       (EXPERIMENTAL) The format of output, available values are [default, json] (default "default")
      --ssh string          (EXPERIMENTAL) The executor type: 'builtin', 'system', 'none'.
      --ssh-timeout uint    Timeout in seconds to connect host via SSH, ignored for operations that don't need an SSH connection. (default 5)
      --wait-timeout uint   Timeout in seconds to wait for an operation to complete, ignored for operations that don't fit. (default 120)
  -y, --yes                 Skip all confirmations and assumes 'yes'

Use "meta help [command]" for more information about a command.
1 个赞

最终问题解决方法,根据自己的集群创建该 路径 /root/.tiup/storage/cluster/clusters/es_tidb,此处 es_tidb 为集群的名字。下面存放 meta.yaml 和ssh 目录。meta.yaml 为集群拓扑,ssh目录下需要存放私钥,确保通过该私钥可以在中控机上使用tidb用户的身份ssh到 其它节点。meta.yaml 文件结构如下。
image

3 个赞

学习一下

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