美文网首页
PD Recover 快速指南

PD Recover 快速指南

作者: Kassadar | 来源:发表于2019-10-16 16:04 被阅读0次

PD Recover 快速指南

前言

PD Recover 是对 PD 进行灾难性恢复的工具,用于恢复无法正常启动或服务的 PD 集群。PD Recover 会随 tidb-ansible 一起下载,位于 resource/bin/pd-recover。

快速开始

获取 Cluster ID

一般在 PD,TiKV 或 TiDB 的日志中都可以获取 Cluster ID。可以从中控机使用 ansible ad-hoc,也可以直接去服务器上翻日志。

(推荐)从 pd 日志获取 [info] cluster id

ansible -i inventory.ini pd_servers -m shell -a 'cat {{deploy_dir}}/log/pd.log | grep "init cluster id" | head -10'
10.0.1.13 | CHANGED | rc=0 >>
[2019/10/14 10:35:38.880 +00:00] [INFO] [server.go:212] ["init cluster id"] [cluster-id=6747551640615446306]
……

或者也可以从 tidb 或 tikv 的日志中获取

从 tidb 日志获取 [info] cluster id

ansible -i inventory.ini tidb_servers -m shell -a 'cat {{deploy_dir}}/log/tidb*.log | grep "init cluster id" | head -10' 
10.0.1.15 | CHANGED | rc=0 >>
2019/10/14 19:23:04.688 client.go:161: [info] [pd] init cluster id 6747551640615446306
……

从 tikv 日志获取 [info] PD cluster

ansible -i inventory.ini tikv_servers -m shell -a 'cat {{deploy_dir}}/log/tikv* | grep "PD cluster" | head -10'
10.0.1.15 | CHANGED | rc=0 >>
[2019/10/14 07:06:35.278 +00:00] [INFO] [tikv-server.rs:464] ["connect to PD cluster 6747551640615446306"]
……

获取 Alloc ID(TiKV StoreID)

在指定 alloc-id 时需指定一个比当前最大的 Alloc ID 更大的值。可以从中控机使用 ansible ad-hoc,也可以直接去服务器上翻日志。

(推荐)从 pd 日志获取 [info] allocates id

ansible -i inventory.ini pd_servers -m shell -a 'cat {{deploy_dir}}/log/pd* | grep "allocates" | head -10'
10.0.1.13 | CHANGED | rc=0 >>
[2019/10/15 03:15:05.824 +00:00] [INFO] [id.go:91] ["idAllocator allocates a new id"] [alloc-id=3000]
[2019/10/15 08:55:01.275 +00:00] [INFO] [id.go:91] ["idAllocator allocates a new id"] [alloc-id=4000]
……

或者也可以从 tikv 的日志中获取

从 tikv 日志获取 [info] alloc store id

ansible -i inventory.ini tikv_servers -m shell -a 'cat {{deploy_dir}}/log/tikv* | grep "alloc store" | head -10'
10.0.1.13 | CHANGED | rc=0 >>
[2019/10/14 07:06:35.516 +00:00] [INFO] [node.rs:229] ["alloc store id 4 "]

10.0.1.14 | CHANGED | rc=0 >>
[2019/10/14 07:06:35.734 +00:00] [INFO] [node.rs:229] ["alloc store id 5 "]

10.0.1.15 | CHANGED | rc=0 >>
[2019/10/14 07:06:35.418 +00:00] [INFO] [node.rs:229] ["alloc store id 1 "]

10.0.1.21 | CHANGED | rc=0 >>
[2019/10/15 03:15:05.826 +00:00] [INFO] [node.rs:229] ["alloc store id 2001 "]

10.0.1.20 | CHANGED | rc=0 >>
[2019/10/15 03:15:05.987 +00:00] [INFO] [node.rs:229] ["alloc store id 2002 "]

部署一套新的 PD 集群

ansible-playbook bootsrap.yml --tags=pd
ansible-playbook deploy.yml --tags=pd
ansible-playbook start.yml --tags=pd

旧集群可以通过删除 data.pd 目录后,重新启动 pd 服务

使用 pd-recover

pd-recover 位于中控服务器 .../tidb-ansible/resources/bin 目录下

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

重启 pd 集群

ansible-playbook rolling_update.yml --tags=pd

重启 tidb/tikv

ansible-playbook rolling_update.yml --tags=tidb,tikv

常见问题

获取 Cluster ID 时发现有多个
新建 PD 集群时,会生成新的 Cluster ID。可以通过日志判断旧集群的 Cluster ID。

执行 pd-recover 时 dial tcp 10.0.1.13:2379: connect: connection refused
执行 pd-recover 时需要 pd 提供服务,请先部署并启动 pd 集群。

相关文章

  • PD Recover 快速指南

    PD Recover 快速指南 前言 PD Recover 是对 PD 进行灾难性恢复的工具,用于恢复无法正常启动...

  • Oracle Rman备份恢复和管理

    参考资料: Oracle之Rman入门指南 一步一步学Rman Rman简介 Rman-Recover manag...

  • HONYAR 鸿雁 智能开关操作指南

    一、 智能开关模块快速操作指南 二、 动能/智能开关快速操作指南

  • W7#文档与流程

    PD的文档: 【需求规范类】 PD做什么:这是对产品和团队的PD工作内容的一份总结,可以让新人快速了解自己额工作职...

  • 2018-03-26

    今年的骨科康复论坛紧紧围绕本次大会“融合创新,重在转化”主题,针对“快速康复” (Enhanced Recover...

  • 如何在 Windows 上安装 MongoDB

    MongoDB C# Driver 管理快速入门指南MongoDB C# Driver 快速入门指南Windows...

  • 聊聊golang的panic与recover

    序 本文主要研究一下golang的panic与recover panic与recover recover在如下三种...

  • 2017-12-04

    Golang,Panic,Defer,Recover 在golang中,recover在defer里发挥作用。 一...

  • iPhone X 快速上手指南

    iPhone X 快速上手指南

  • RECOVER

    好吧 不再犹豫了 我其实也明白 以后的日子 苦中寻乐吧 就这样吧 人总是在找适合自己的生活 我也会努力的 打起精神...

网友评论

      本文标题:PD Recover 快速指南

      本文链接:https://www.haomeiwen.com/subject/otjumctx.html