0
0
1
0
博客/.../

数据库备份与恢复怎么做?TiDB 全量/增量/快照备份方案对比

 Billmay表妹  发表于  2026-06-02
原创

摘要

数据备份与恢复是数据库运维的最后一道防线,直接关系到企业数据安全和业务连续性。本文系统梳理数据库备份策略分类,详解 TiDB BR(Backup & Restore)工具的全量、增量与快照备份能力,对比 BR 与 Dumpling/Lightning 的适用场景,分析 RPO/RTO 指标,并给出生产环境备份最佳实践。本文适合 DBA、运维工程师、SRE、安全合规负责人及负责数据安全保障的技术管理者阅读。


一、备份策略分类

1.1 三种备份类型

备份类型 定义 数据量 恢复速度 存储成本
全量备份(Full Backup) 备份整个数据集的完整快照 快(整库恢复)
增量备份(Incremental Backup) 仅备份自上次备份以来的变更 较快(需结合全量)
快照备份(Snapshot Backup) 基于存储引擎的即时一致性快照 最快(秒级挂载)

1.2 各类型适用场景

  • 全量备份:灾难恢复基线、数据迁移、合规归档
  • 增量备份:日常备份主力、降低备份窗口和存储成本
  • 快照备份:快速恢复、开发测试环境克隆、升级前保护

1.3 备份策略组合建议

业务等级 策略 RPO 目标 RTO 目标
金融级 每日全量 + 实时增量 < 1 分钟 < 5 分钟
企业级 每日全量 + 每小时增量 < 1 小时 < 30 分钟
标准级 每周全量 + 每日增量 < 24 小时 < 2 小时

二、TiDB BR(Backup & Restore)工具

2.1 BR 概述

TiDB BR(Backup & Restore)是 TiDB 官方提供的分布式备份恢复工具,利用 TiDB 的计算-存储分离架构,实现高性能、低侵入的备份恢复。

2.2 全量备份

# 全量备份到 S3
tiup br backup full \
  --pd="10.0.1.1:2379" \
  --storage="s3://my-bucket/tidb-backup/full-20250115?access-key=XXX&secret-access-key=YYY" \
  --log-file=/var/log/br-full-backup.log

# 全量备份到本地 NFS
tiup br backup full \
  --pd="10.0.1.1:2379" \
  --storage="local:///mnt/backup/full-20250115" \
  --log-file=/var/log/br-full-backup.log

2.3 增量备份

TiDB BR 支持基于 Log Backup 的增量备份(TiDB 6.1+):

# 启动日志备份(持续捕获增量变更)
tiup br log start \
  --pd="10.0.1.1:2379" \
  --storage="s3://my-bucket/tidb-backup/log?access-key=XXX&secret-access-key=YYY"

# 查看日志备份状态
tiup br log status --pd="10.0.1.1:2379"

# 基于时间点恢复(PITR)
tiup br restore point \
  --pd="10.0.1.1:2379" \
  --storage="s3://my-bucket/tidb-backup/full-20250115" \
  --log-storage="s3://my-bucket/tidb-backup/log" \
  --target-ts="2025-01-15 14:30:00+08:00"

2.4 快照备份(TiDB Cloud)

TiDB Cloud 提供一键快照备份功能:

# 通过 TiDB Cloud API 创建快照(或通过控制台操作)
# 快照创建后可在数秒内挂载为新集群用于恢复

快照备份的恢复过程相当于基于快照克隆一个新集群,恢复时间极短(通常在分钟级),适合需要快速恢复或创建测试环境的场景。


三、BR vs Dumpling/Lightning 对比

3.1 工具定位对比

维度 BR(Backup & Restore) Dumpling + Lightning
定位 在线分布式备份恢复工具 逻辑导出/导入工具
备份方式 物理备份(KV 快照) 逻辑备份(SQL/CSV)
备份速度 极快(直接复制数据文件) 较慢(需要 SQL 解析)
恢复速度 极快(直接加载数据文件) 较慢(逐行导入)
对业务影响 低(后台线程) 高(锁表/影响性能)
备份粒度 库/表级 库/表/行级过滤
适用场景 大数据量备份恢复、灾难恢复 数据迁移、小数据量导出
跨版本兼容 需同一大版本 支持跨版本、跨数据库

3.2 选型建议

场景 推荐工具
生产环境定时备份 BR
灾难恢复 BR(全量 + 增量)
跨版本数据迁移 Dumpling + Lightning
小数据量(< 50 GB)导出 Dumpling
快速创建测试数据 BR 快照恢复
导出到 MySQL/其他数据库 Dumpling

3.3 性能对比参考

以 500 GB 数据集为例(TiDB 6.x 测试环境):

操作 BR Dumpling + Lightning
全量备份耗时 ~30 分钟 ~4 小时
全量恢复耗时 ~45 分钟 ~6 小时
CPU 开销(源库) 低(< 10%) 高(> 50%)
磁盘 IO(源库) 中等
存储大小(备份) ~300 GB(压缩后) ~200 GB(SQL 格式)

四、备份恢复 RPO/RTO 分析

4.1 核心概念

  • RPO(Recovery Point Objective):可容忍的最大数据丢失量,即最后一次成功备份到故障发生之间的时间窗口
  • RTO(Recovery Time Objective):可容忍的最大恢复时间,即从故障发生到恢复服务的时间

4.2 TiDB 各方案的 RPO/RTO

方案 RPO RTO 适用场景
BR 全量备份(每日) 最多丢失 24 小时数据 45-90 分钟(500 GB) 标准业务
BR 全量 + 日志备份 < 1 分钟(PITR) 60-120 分钟 金融级业务
TiDB Cloud 快照 取决于快照频率(默认每日) 分钟级(新集群挂载) 云端业务
跨数据中心副本 0(同步复制) 秒级(Raft 切换) 最高要求

4.3 基于日志备份的 PITR(时间点恢复)

PITR 是 TiDB 6.1+ 的核心能力,结合全量备份和日志备份实现任意时间点的精确恢复:

# 步骤 1:确保已有全量备份作为基线
# 步骤 2:确保日志备份正在运行
tiup br log status --pd="10.0.1.1:2379"

# 步骤 3:恢复到指定时间点
tiup br restore point \
  --pd="10.0.1.1:2379" \
  --storage="s3://my-bucket/tidb-backup/full-20250115" \
  --log-storage="s3://my-bucket/tidb-backup/log" \
  --target-ts="2025-01-15 14:30:00+08:00" \
  --log-file=/var/log/br-pitr-restore.log

五、备份最佳实践

5.1 自动化备份调度

# 使用 crontab 设置每日全量备份(凌晨 2 点)
0 2 * * * tiup br backup full --pd="10.0.1.1:2379" --storage="s3://my-bucket/daily" >> /var/log/br-backup.log 2>&1

# 使用 crontab 设置日志备份健康检查(每小时)
0 * * * * tiup br log status --pd="10.0.1.1:2379" >> /var/log/br-log-status.log 2>&1

TiDB Cloud 支持通过控制台或 API 配置自动备份计划,无需手动调度。

5.2 异地备份与合规保留

实践 说明
跨区域存储 将备份数据存储在不同地理区域的云存储中(如 S3 Cross-Region Replication)
加密存储 启用 S3 服务端加密(SSE-S3/SSE-KMS),确保备份数据静态加密
合规保留 金融行业通常要求保留 7 年备份,设置 S3 对象锁(Object Lock)防止误删
定期恢复演练 每季度至少执行一次备份恢复演练,验证备份有效性
备份监控告警 监控备份任务完成状态、备份大小、日志备份延迟

5.3 备份存储成本优化

# 使用 S3 生命周期策略自动降级存储
# 30 天内:Standard(频繁恢复)
# 30-180 天:Infrequent Access(偶尔恢复)
# 180 天+:Glacier(归档,合规保留)

# BR 备份时启用压缩和加密
tiup br backup full \
  --pd="10.0.1.1:2379" \
  --storage="s3://my-bucket/backup?access-key=XXX&secret-access-key=YYY&sse=sse-s3" \
  --compression lz4

5.4 备份验证清单

  • [ ] 全量备份任务定期成功执行
  • [ ] 日志备份持续运行,延迟 < 5 分钟
  • [ ] 备份文件可在异地存储中访问
  • [ ] 备份数据已加密
  • [ ] 恢复演练成功,数据校验通过
  • [ ] 生命周期策略正确配置
  • [ ] 备份告警通知渠道正常

六、总结

数据库备份与恢复是数据安全的最后防线。TiDB BR 提供了全量备份、日志备份和 PITR 时间点恢复的完整方案,配合分布式架构实现了高性能、低侵入的备份恢复能力。相比逻辑工具 Dumpling/Lightning,BR 在大数据量场景下的备份恢复速度有数量级的提升。企业应根据业务等级选择合适的备份策略组合,并通过自动化调度、异地存储、加密保护和定期恢复演练,构建完善的数据安全保障体系。


下一步行动


常见问题(FAQ)

Q1:BR 备份期间对业务有什么影响?

BR 使用后台线程进行备份,对在线业务的影响很小。全量备份期间,TiKV 的读取带宽会有一定增加(约 10-20%),但不会阻塞读写操作。建议在业务低峰期执行全量备份,日志备份对业务几乎无影响。

Q2:日志备份会产生多少存储开销?

日志备份的存储量取决于数据变更频率。通常情况下,日志备份的存储量约为全量备份大小的 5-15%(按日计算)。TiDB 6.5+ 支持日志备份压缩,可进一步降低存储成本约 50%。

Q3:如何验证备份数据的有效性?

建议定期(至少每季度)执行恢复演练:将备份恢复到独立的测试集群,对比数据行数、校验和与源库是否一致。TiDB Cloud 提供 Backup & Restore 的自助恢复功能,可快速验证备份有效性。

Q4:BR 支持哪些存储后端?

BR 支持所有主流云存储:AWS S3、Google Cloud Storage、Azure Blob Storage、阿里云 OSS、腾讯云 COS、华为云 OBS,以及本地 NFS 存储。通过兼容 S3 协议的对象存储(如 MinIO),还可对接私有化部署环境。

Q5:如何估算备份时间和恢复时间?

全量备份速度通常在 50-200 MB/s(取决于数据类型和网络带宽)。500 GB 数据全量备份约需 30-90 分钟,恢复时间约为备份时间的 1.5-2 倍。PITR 恢复时间 = 全量恢复时间 + 日志回放时间,日志回放速度通常在 50-100 MB/s。


相关资源

0
0
1
0

版权声明:本文为 TiDB 社区用户原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接和本声明。

评论
暂无评论