【 TiDB 使用环境】测试环境
【 TiDB 版本】v 6.1.0
【复现路径】TiUP节点故障,数据丢失且无备份
【遇到的问题:问题现象及影响】
我们去年在自建环境中使用TiUP部署了一套TiDB集群,后因系统故障,TiUP节点损坏,元数据丢失且无备份。目前集群存储了较多数据,依赖TiDB的项目也在进行中,无法重建TiDB集群。因此,希望寻求别的途径,新建TiUP节点,并且与损坏的TiUP节点部署的其他组件之间能够互认。
【 TiDB 使用环境】测试环境
【 TiDB 版本】v 6.1.0
【复现路径】TiUP节点故障,数据丢失且无备份
【遇到的问题:问题现象及影响】
我们去年在自建环境中使用TiUP部署了一套TiDB集群,后因系统故障,TiUP节点损坏,元数据丢失且无备份。目前集群存储了较多数据,依赖TiDB的项目也在进行中,无法重建TiDB集群。因此,希望寻求别的途径,新建TiUP节点,并且与损坏的TiUP节点部署的其他组件之间能够互认。
一些方法,请参考, 以下是建议的步骤:
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
tiup cluster init <cluster-name>
其中 <cluster-name>
是您要为集群指定的名称。
编辑新的 Topology 文件:在初始化 TiUP 节点之后,根据您原先损坏节点所属的集群配置信息,可以使用该配置信息生成新的 Topology 文件。请确保新的 Topology 文件与原先损坏节点的配置信息完全一致。
部署新的 TiUP 节点:使用以下命令行将新的 Topology 文件用于部署新的 TiUP 节点:
tiup cluster deploy <cluster-name> <path-to-topology-file> --user <ssh-user> --identity <path-to-ssh-identity>
这个命令将会根据 Topology 文件中的配置部署一个新的 TiUP 节点,并将其和其他组件(如 TiDB、TiKV、PD)关联起来。
请注意替换命令中的参数 <cluster-name>
、<path-to-topology-file>
、<ssh-user>
和 <path-to-ssh-identity>
为您自己的实际值。
tiup cluster display <cluster-name>
该命令将显示集群中所有节点的状态,确认新的 TiUP 节点已经成功添加并与其他组件互认。
可以参考一下FAQ
新建一个中控节点安装tiup,在新中控节点配置原来集群的信息,topology.yaml (需要将原来集群节点的信息都录入, ip、port、目录、配置、label都要和原来一样,
可以登陆每台机器查看一下)
然后执行
tiup cluster deploy tidb-xxx ./topology.yaml
tiup cluster display tidb-xxx
看下能看到集群不能。。。
感谢您的回复,请问如何在没有TiUP的情况下知道原来部署的TiDB集群的信息?比如cluster-name、以及topology内需要填写的信息?
您好,感谢您的回复!目前我可以登录每一台机器,但是关于“查询集群节点信息”这一点我还是不太理解,还望您能解惑一二:
1.不需要一致
2.端口就是你的tidb-server、tikv、pd等组件的端口,包括监控、tiflash等等
3.目录也一样,你对应的每个节点上的每个组件都需要配置目录(存放组件和数据)
4.配置,就是你原来可能针对某些组件修改过配置,例如最常见的tikv的block-cache-capacity这种配置,建议都和原来保持一致
5.label是一种数据存放策略,例如你一台机器上部署了2个tikv,那就需要设置label防止同一个region的两份副本都放在这个机器上
以上配置可以到每个节点搜一下对应的toml文件,例如我的tikv配置文件如下:
好的,我试一下,感谢您的回复