PD Recover 使用文档

    要使用 PD Recover,你可以,也可以直接下载 TiDB 工具包

    • PD 根目录下,运行 make pd-recover 命令来编译源代码并生成 bin/pd-recover

    注意

    一般来说,用户不需要编译源代码,因为发布的二进制文件或 Docker 中已包含 PD Recover 工具。开发者可以参考以上步骤来编译源代码。

    下载 TiDB 工具包

    PD Recover 的安装包位于 TiDB 离线工具包中。下载方式,请参考 TiDB 工具下载

    获取 Cluster ID

    从 PD 日志获取 Cluster ID(推荐)

    使用以下命令,从 PD 日志中获取 Cluster ID:

    1. [2019/10/14 10:35:38.880 +00:00] [INFO] [server.go:212] ["init cluster id"] [cluster-id=6747551640615446306]
    2. ...

    或者也可以从 TiDB 或 TiKV 的日志中获取。

    从 TiDB 日志获取 Cluster ID

    使用以下命令,从 TiDB 日志中获取 Cluster ID:

    从 TiKV 日志获取 Cluster ID

    使用以下命令,从 TiKV 日志中获取 Cluster ID:

    1. cat {{/path/to}}/tikv.log | grep "connect to PD cluster"
    1. [2019/10/14 07:06:35.278 +00:00] [INFO] [tikv-server.rs:464] ["connect to PD cluster 6747551640615446306"]
    2. ...

    在指定已分配 ID 时,需指定一个比当前最大的已分配 ID 更大的值。可以从监控中获取已分配 ID,也可以直接在服务器上查看日志。

    从监控中获取已分配 ID(推荐)

    从 PD 日志获取已分配 ID

    要从 PD 日志中获取分配的 ID,需要确保你所查看的日志是上一任 PD Leader 的日志。运行以下命令获取最大的已分配 ID:

    1. 4000

    你也可以在所有 PD server 中运行上述命令,找到最大的值。

    部署一套新的 PD 集群

    部署新的 PD 集群之前,需要停止当前的 PD 集群,然后删除旧的数据目录(或者用 --data-dir 指定新的数据目录)。

    使用 pd-recover

    只需在一个 PD 节点上执行 pd-recover 即可。

    1. ./pd-recover -endpoints http://10.0.1.13:2379 -cluster-id 6747551640615446306 -alloc-id 10000

    当出现 recovery is successful 的提示信息时,重启整个集群。

    获取 Cluster ID 时发现有多个 Cluster ID

    执行 pd-recover 时返回错误

    执行 pd-recover 时需要 PD 提供服务,请先部署并启动 PD 集群。