【版本】
tidb-4.0
【问题描述】
使用tiup安装的数据库, 因为某些原因主控机被意外格式化、或者主控机损坏,导致原有的tiup 工具丢失、不可恢复
【期望结果】
用新的一台主机,做为主控机并安装新的tiup工具, 如何让新的tiup工具管理原有旧的数据库集群
tidb-4.0
使用tiup安装的数据库, 因为某些原因主控机被意外格式化、或者主控机损坏,导致原有的tiup 工具丢失、不可恢复
用新的一台主机,做为主控机并安装新的tiup工具, 如何让新的tiup工具管理原有旧的数据库集群
你好
确认下当前集群环境
tidb-ansible
导入的。该集群是否时 tidb-ansible 导入的。
答: 是直接使用 tiup 安装的新集群
目前是否有当前正在运行集群的完整 topology 文件,(display 可以看到的完整集群信息),如果没有可否将其手动还原下。
答: topology 文件已经丢失,并且没有备份, (如何手动还原 topology 文件这个不会呢)
这个意思是,手写一份完整的 topo 文件,和 deploy 时一样,譬如你有几个 tikv pd tidb tiflash 是否有 pump drainer cdc,之类的,参数类的可以先不写,最后可以根据 tidb.log 中的参数信息进行补齐,主要是节点信息和目录,
这个是可以做到的,没有问题, 然后接下来我要怎么做呢
ok,感谢配合。
确认下当前环境是否为正式环境?
当前环境 非正式环境, 但也希望老师能给出 正式环境的解决方案, 只怕万一正式环境出问题束手无策,感谢老师
嗯,ok,
明确下本次恢复的目的,是恢复 .tiup 中的元数据,此为管理集群的基础。有个这些元数据,新的 tiup 将会继续运维以前的集群,
[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 目录进行备份)
请问老师,是不是修改这个文件,把对应的(pd、kv、tidb)的文件都修改成其他的名字
赞,理解正确,是的。解释如下:
如果是ansible导入的,恢复教程不通用吗
目前没有测试过,meta 文件存储路径不同,可以尝试下,看用此方法是否可以对 tidb-ansible 导入的集群进行恢复。
好的,谢谢
ok,如果有测试,可以将步骤和问题整理下,回复下帖子,我们可以一起 review 。
建议全部备份,.old 是升级后的旧的 binary,理论上不会被用到
直接对文件夹mv可以不?
额。简单测试下呗。mv 的目的上面写了。
pump节点已经下线了,需要把topology中相关的配置先去掉吗?
因为reload之后,pump实例都会重新上线
开新帖说明下你的情况吧