当前位置: 首页 > news >正文

【赵渝强老师】TiDB的备份恢复策略

在这里插入图片描述

数据库在运行过程中会出现各种故障,因此对数据库进行必要的备份是非常重要的。有了数据库的备份就可以在数据库出现错误时保证数据的安全。因此TiDB数据库提供了强大的数据库备份与恢复机制。

视频讲解如下

【赵渝强老师】TiDB的备份恢复策略

一、 TiDB备份和恢复基础

基于Raft协议和合理的部署拓扑规划,TiDB实现了集群的高可用,当集群中少数节点挂掉时,集群依然能对外提供服务。在此基础上,为了更进一步保证用户数据的安全,TiDB还提供了集群的备份与恢复(Backup & Restore,BR)功能,作为数据安全的最后一道防线,使得集群能够免于严重的自然灾害,提供业务误操作“复原”的能力。

TiDB备份恢复功能可以用于满足以下业务的需求:

  • 备份集群数据到灾备系统,并保证Recovery Point Objective(RPO)低至5分钟,减少灾难场景下数据的丢失。
  • 处理业务数据写错的案例,提供业务操作的“复原”能力。
  • 审计业务的历史数据,满足司法审查的需求。
  • 复制(Clone)生产环境,方便问题诊断、性能调优验证、仿真测试等。

二、 全量(快照)备份与恢复

全量备份是对集群某个时间点的全量数据进行备份,TiDB的全量备份也可以叫做快照备份。因为TiDB集群快照数据包含某个物理时间点上集群满足事务一致性的所有数据。全量备份一般会占用较大的存储空间,且只包含某个时间点的集群数据。

下面展示了使用BR工具执行快照备份后生成的目录文件信息:

[root@tidb ~]# tree /backup/snapshot/
/backup/snapshot/
└── snapshot-├── 5│   ├── 32_230_ed85b58a2c9d_1739778932458_default.sst│   ├── 32_230_ed85b58a2c9d_1739778932458_write.sst│   ├── 32_230_f0f9b1a4aa3e_1739778932311_write.sst│   ├── 32_230_f4dd8b9e5561_1739778932359_write.sst│   ├── 32_230_f70c98a950fe_1739778932095_write.sst│   ├── 32_230_fd54db249c01_1739778932399_write.sst│   ├── 32_230_fe4f4fe208b8_1739778932299_write.sst│   └── 32_230_fea1363341eb_1739778932201_write.sst├── backup.lock├── backupmeta├── backupmeta.datafile.000000001├── backupmeta.schema.000000002└── checkpoints└── backup

三、 日志备份与恢复

快照备份一般会占用较大的存储空间,且只包含某个时间点的集群数据。如果需要灵活地选择恢复的时间点(即:实现PITR),可以使用日志备份和日志恢复。有了日志备份后,通过br restore point功能,可以指定要恢复的时间点。BR会自动判断和读取恢复需要的数据,然后将这些数据依次恢复到指定的集群。

下面展示了使用BR工具执行日志备份后生成的目录文件信息:

[root@tidb ~]# tree /backup/logbackup
/backup/logbackup
├── backup.lock
├── backupmeta
└── v1├── 20250217│   └── 08│       ├── 1│       │   └── 456073106335727621-93e1553a-6a78-4dc3-874c-b4fcc18731dd.log│       └── 4│           ├── 456073104696803332-317073c0-5462-46b2-99b0-8bc960b6e704.log│           └── schema-meta│               └── 456073106347524098-90ad3814-4b12-4094-b569-02288355512d.log├── backupmeta│   ├── 456073098312810497-032a60d7-f240-47a9-b993-1bcd4b2b947f.meta│   └── 456073098312810497-2b5f0d4f-2a06-472c-9d78-154f851c5c0e.meta└── global_checkpoint├── 1.ts├── 4.ts└── 5.ts

《TiDB数据库从零开始》

http://www.xdnf.cn/news/329689.html

相关文章:

  • 将本地项目提交到新建的git仓库
  • 【性能工具】一种简易hook bitmap创建的插件使用
  • Docker + Watchtower 实现容器自动更新:高效运维的终极方案
  • 算法研习:最大子数组和问题深度剖析
  • YOLO-POSE 姿态扩充
  • CUDA:out of memory的解决方法(实测有效)
  • 心智领航・数启未来 | AI数字化赋能精神心理医疗学术大会重磅来袭,5月10日广州附医华南医院开启智慧对话!
  • 【C++贪心】P9344 去年天气旧亭台|普及
  • Spark处理过程-转换算子和行动算子
  • NumPy 2.x 完全指南【一】简介
  • 混淆矩阵(Confusion Matrix)
  • Qt开发经验 --- 避坑指南(5)
  • python打卡day18
  • Spring MVC中跨域问题处理
  • 把一个过大的文件夹分成若干个 ZIP 分卷
  • 雅努斯问题(Janus Problem)及解决方案
  • 三轴云台之模糊控制算法篇
  • Golang的linux运行环境的安装与配置
  • AB测试面试题
  • MCP学习
  • 行动作用作用
  • 后端返回文件流,前端展示图片
  • 003 系统和入门指令
  • 【基础知识】常见公式计算(三)
  • 情感共鸣+海外网红营销:跨境电商如何讲好“母亲节”故事?
  • BRAM 64bit位宽报错问题
  • C++ 如何在一个方法中返回多个不同类型的数据
  • [D1,2] 贪心刷题
  • 深入剖析GoFrame日志模块:优势、特色与项目实践经验分享
  • 不同大模型对提示词和问题的符号标识