[转帖]备份与恢复工具 BR 简介

备份,恢复,工具,br,简介 · 浏览次数 : 0

小编点评

**Backup & Restore Tool BR** **工作原理** BR 是一种命令行工具,用于对 TiDB 集群进行数据备份和恢复。BR 将备份或恢复操作命令下发到各个 TiKV 节点。TiKV 收到命令后执行相应的备份或恢复操作。 **推荐部署配置** BR 推荐部署在 PD 节点上。推荐使用一块高性能 SSD 网盘,挂载到 BR 节点和所有 TiKV 节点上,网盘推荐万兆网卡,否则带宽有可能成为备份恢复时的性能瓶颈。 **使用限制** * BR 恢复到 TiCDC / Drainer 的上游集群时,恢复数据无法由 TiCDC / Drainer 同步到下游。 * BR 只支持在 new_collations_enabled_on_first_bootstrap 开关值相同的集群之间进行操作。 * 在备份和恢复大量数据表时,BR 的内存消耗可能会上升到 3 GB 以上。 **版本兼容性** BR 支持 TiDB 集群的版本兼容性问题,包括: * BR 部分版本和 TiDB 集群的接口不兼容某些功能在开启或关闭状态下。 * BR 内置版本检查,在执行备份和恢复操作前,对 TiDB 集群版本和自身版本进行对比检查。 **其他最佳实践** * 在使用 BR 进行备份恢复时,推荐在业务低峰时执行备份操作。 * BR 支持在不同拓扑的集群上执行恢复,但恢复期间对在线业务影响很大,建议低峰期或者限速 (rate-limit) 执行恢复。 * 在使用共享存储时,推荐使用高吞吐的存储硬件。

正文

https://docs.pingcap.com/zh/tidb/v4.0/backup-and-restore-tool

BR 全称为 Backup & Restore,是 TiDB 分布式备份恢复的命令行工具,用于对 TiDB 集群进行数据备份和恢复。BR 只支持在 TiDB v3.1 及以上版本使用。

相比 Dumpling,BR 更适合大数据量的场景。

本文介绍了 BR 的工作原理、推荐部署配置、使用限制以及几种使用方式。

工作原理

BR 将备份或恢复操作命令下发到各个 TiKV 节点。TiKV 收到命令后执行相应的备份或恢复操作。

在一次备份或恢复中,各个 TiKV 节点都会有一个对应的备份路径,TiKV 备份时产生的备份文件将会保存在该路径下,恢复时也会从该路径读取相应的备份文件。

br-arch

更多信息请参阅备份恢复设计方案

备份文件类型

备份路径下会生成以下两种类型文件:

  • SST 文件:存储 TiKV 备份下来的数据信息
  • backupmeta 文件:存储本次备份的元信息,包括备份文件数、备份文件的 Key 区间、备份文件大小和备份文件 Hash (sha256) 值
  • backup.lock 文件:用于防止多次备份到同一目录

SST 文件命名格式

SST 文件以 storeID_regionID_regionEpoch_keyHash_cf 的格式命名。格式名的解释如下:

  • storeID:TiKV 节点编号
  • regionID:Region 编号
  • regionEpoch:Region 版本号
  • keyHash:Range startKey 的 Hash (sha256) 值,确保唯一性
  • cf:RocksDB 的 ColumnFamily(默认为 default 或 write

部署使用 BR 工具

推荐部署配置

  • 推荐 BR 部署在 PD 节点上。
  • 推荐使用一块高性能 SSD 网盘,挂载到 BR 节点和所有 TiKV 节点上,网盘推荐万兆网卡,否则带宽有可能成为备份恢复时的性能瓶颈。
 
注意
  • 如果没有挂载网盘或者使用其他共享存储,那么 BR 备份的数据会生成在各个 TiKV 节点上。由于 BR 只备份 leader 副本,所以各个节点预留的空间需要根据 leader size 来预估。
  • 同时由于 v4.0 默认使用 leader count 进行平衡,所以会出现 leader size 差别大的问题,导致各个节点备份数据不均衡。

使用限制

下面是使用 BR 进行备份恢复的几条限制:

  • BR 恢复到 TiCDC / Drainer 的上游集群时,恢复数据无法由 TiCDC / Drainer 同步到下游。
  • BR 只支持在 new_collations_enabled_on_first_bootstrap 开关值相同的集群之间进行操作。这是因为 BR 仅备份 KV 数据。如果备份集群和恢复集群采用不同的排序规则,数据校验会不通过。所以恢复集群时,你需要确保 select VARIABLE_VALUE from mysql.tidb where VARIABLE_NAME='new_collation_enabled'; 语句的开关值查询结果与备份时的查询结果相一致,才可以进行恢复。

兼容性

BR 和 TiDB 集群的兼容性问题分为以下两方面:

  • BR 部分版本和 TiDB 集群的接口不兼容
  • 某些功能在开启或关闭状态下,会导致 KV 格式发生变化,因此备份和恢复期间如果没有统一开启或关闭,就会带来不兼容的问题

下表整理了会导致 KV 格式发生变化的功能。

功能相关 issue解决方式
New collation #352 确保恢复时集群的 new_collations_enabled_on_first_bootstrap 变量值和备份时的一致,否则会导致数据索引不一致和 checksum 通不过。
恢复集群开启 TiCDC 同步 #364 TiKV 暂不能将 BR ingest 的 SST 文件下推到 TiCDC,因此使用 BR 恢复时候需要关闭 TiCDC。

在上述功能确保备份恢复一致的前提下,BR 和 TiKV/TiDB/PD 还可能因为版本内部协议不一致/接口不一致出现不兼容的问题,因此 BR 内置了版本检查。

版本检查

BR 内置版本会在执行备份和恢复操作前,对 TiDB 集群版本和自身版本进行对比检查。如果大版本不匹配(比如 BR v4.x 和 TiDB v5.x 上),BR 会提示退出。如要跳过版本检查,可以通过设置 --check-requirements=false 强行跳过版本检查,但是这样可能会引入版本不兼容的问题。TiDB v4.0 用 BR 备份后,不完全支持恢复到 v5.0 以及之后版本,详细信息见 BR 版本检查(stable 版文档)

运行 BR 的最低机型配置要求

运行 BR 的最低机型配置要求如下:

CPU内存硬盘类型网络
1 核 4 GB HDD 千兆网卡

一般场景下(备份恢复的表少于 1000 张),BR 在运行期间的 CPU 消耗不会超过 200%,内存消耗不会超过 1 GB。但在备份和恢复大量数据表时,BR 的内存消耗可能会上升到 3 GB 以上。在实际测试中,备份 24000 张表大概需要消耗 2.7 GB 内存,CPU 消耗维持在 100% 以下。

最佳实践

下面是使用 BR 进行备份恢复的几种推荐操作:

  • 推荐在业务低峰时执行备份操作,这样能最大程度地减少对业务的影响。
  • BR 支持在不同拓扑的集群上执行恢复,但恢复期间对在线业务影响很大,建议低峰期或者限速 (rate-limit) 执行恢复。
  • BR 备份最好串行执行。不同备份任务并行会导致备份性能降低,同时也会影响在线业务。
  • BR 恢复最好串行执行。不同恢复任务并行会导致 Region 冲突增多,恢复的性能降低。
  • 推荐在 -s 指定的备份路径上挂载一个共享存储,例如 NFS。这样能方便收集和管理备份文件。
  • 在使用共享存储时,推荐使用高吞吐的存储硬件,因为存储的吞吐会限制备份或恢复的速度。

使用方式

目前支持以下几种方式来运行 BR 工具,分别是通过 SQL 语句、命令行工具或在 Kubernetes 环境下进行备份恢复。

通过 SQL 语句

在 v4.0.2 及以上版本的 TiDB 中,支持直接通过 SQL 语句进行备份恢复,具体使用示例见:

通过命令行工具

在 v3.1 以上的 TiDB 版本中,支持通过命令行工具进行备份恢复。

首先需要下载一个 BR 工具的二进制包,详见下载链接

通过命令行工具进行备份恢复的具体操作见使用备份与恢复工具 BR

在 Kubernetes 环境下

目前支持使用 BR 工具备份 TiDB 集群数据到兼容 S3 的存储、Google Cloud Storage 以及持久卷,并作恢复:

 
注意

Amazon S3 和 Google Cloud Storage (GCS) 参数描述见外部存储文档。

BR 相关文档

与[转帖]备份与恢复工具 BR 简介相似的内容:

[转帖]备份与恢复工具 BR 简介

https://docs.pingcap.com/zh/tidb/v4.0/backup-and-restore-tool BR 全称为 Backup & Restore,是 TiDB 分布式备份恢复的命令行工具,用于对 TiDB 集群进行数据备份和恢复。BR 只支持在 TiDB v3.1 及以上版

[转帖]TIDB - 使用BR工具进行数据热备份与恢复

一、BR工具 BR 全称为 Backup & Restore,是 TiDB 分布式备份恢复的命令行工具,用于对 TiDB 集群进行数据备份和恢复。BR 只支持在 TiDB v3.1 及以上版本使用。 在前面的章节中,我们介绍了dumpling将数据导出的方式,也可以作为一种备份的方式,并且导出的数据

[转帖]TIDB - 使用BR工具进行数据热备份与恢复

一、BR工具 BR 全称为 Backup & Restore,是 TiDB 分布式备份恢复的命令行工具,用于对 TiDB 集群进行数据备份和恢复。BR 只支持在 TiDB v3.1 及以上版本使用。 在前面的章节中,我们介绍了dumpling将数据导出的方式,也可以作为一种备份的方式,并且导出的数据

[转帖]灾难恢复能力国家标准等级

https://www.cndba.cn/dave/article/3232 1.国家标准 2007年7月,国务院信息化工作办公室领导编制的《重要信息系统灾难恢复指南》正式升级成为国家标准《信息系统灾难恢复规范》(GB/T 20988-2007 )。这是中国灾难备份与恢复行业的第一个国家标准,并于2

[转帖]TIDB - 使用 Dumpling 和 TiDB Lightning 迁移Mysql数据至TIDB中

一、TiDB Lightning介绍 TiDB Lightning 是一个将全量数据高速导入到 TiDB 集群的工具,目前支持 Mydumper 或 CSV 输出格式的数据源。你可以在以下两种场景下使用 Lightning: 迅速导入大量新数据。 备份恢复所有数据。 目前,TiDB Lightnin

[转帖]Redis 备份与恢复(RDB/AOF) 说明

2022-06-16 20:364580原创Redis 本文链接:https://www.cndba.cn/dave/article/108068 1 RDB 方式 1.1 RDB 备份恢复说明 Redis 的备份恢复有两种方法:RDB和AOF。 其中RDB 文件是一个经过压缩的二进制文件,有两个R

[转帖]etcd的备份与恢复

https://www.cnblogs.com/wyh-l6/p/16547040.html etcd是coreos团队在2013年6月发起的开源项目,现在在githab上托管 etcd目标构建一个高可用的分布式键值数据库 etcd具有以下属性: 完全复制:集群中的每个节点都可以使用完整的存档 高可

[转帖]Redis数据库的备份与恢复

Redis备份 当程序有较多的任务在执行时,我们可以redis-cli模式下执行 bgsave,进入后台进行备份. Snapshot 当然我们可以直接运行save命令.会写入dump.rdb文件。 配置说明: save 900 1 #当900秒之后有一个key变化进行持久化保存 save 300 1

[转帖]Innodb存储引擎-备份和恢复(分类、冷备、热备、逻辑备份、二进制日志备份和恢复、快照备份、复制)

文章目录 备份和恢复分类冷备热备逻辑备份mysqldumpSELECT...INTO OUTFILE恢复 二进制日志备份与恢复快照备份(完全备份)复制快照+复制的备份架构 备份和恢复 分类 (1)根据备份的方法可以分为: Hot Backup(热备):指在数据库运行中直接备份,对正在运行的数据库没有

[转帖]使用 Dumpling 和 TiDB Lightning 备份与恢复

https://docs.pingcap.com/zh/tidb/stable/backup-and-restore-using-dumpling-lightning 本文档介绍如何使用 Dumpling 和 TiDB Lightning 进行全量备份与恢复。 在备份与恢复场景中,如果需要全量备份少