嗯,ok,
明确下本次恢复的目的,是恢复 .tiup 中的元数据,此为管理集群的基础。有个这些元数据,新的 tiup 将会继续运维以前的集群,
恢复步骤
- 手写一下最终的集群 topo 文件,
- 需要批量将 instance 级别的 bin/{instance}-server 文件 mv ,解释可看 [2]
- 根据 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 目录进行备份)
注意事项
- deploy 时 version 要指定正确,需要相同版本
- 所有节点的 binary 文件需要 mv
- 保证 topology 文件的完整性,与最终集群节点一致。请注意 deploy-dir/data_dir/port/status_port 等参数的编写。