TiDB 快照恢复
2023-7-5
| 2024-9-29
0  |  Read Time 0 min
type
status
date
slug
summary
tags
category
icon
password
 
TiDB 使用周期性运行的 GC(Garbage Collection,垃圾回收)来进行清理,默认情况下每 10 分钟一次。每次 GC 时,TiDB 会计算一个称为 safe point 的时间戳(默认为上次运行 GC 的时间减去 10 分钟),接下来 TiDB 会在保证在 safe point 之后的快照都能够读取到正确数据的前提下,删除更早的过期数据。
 

前情提要

公司萌新误操作,把数据表清空。
 

修改 GC 的生存时间

tidb 默认 GC 生存时间比较短,一旦删库的时间点超过这个时间就直接完犊子。
登录 tidb 数据库,查看 GC 生存时间:
notion image
60 分钟,我们有 1.5 亿条数据,不太够。
设置 GC 生存时间为 72 小时:

设置快照时间点

设置 tidb_snapshot 变量为删库前的某个时间点:
设置完成之后,应该就能看到被删除的数据了,接下来需要导出导入数据。

使用 tiup dumpling 导出被删除的数据

数据完全导出后,可恢复 tidb_snapshot 为 "",并删除空表。

使用 tidb-lightning 导入数据

安装 tidb-lightning
创建 tidb-lightning 配置文件 <u>tidb-lightning.toml</u> :
导入数据到 TIDB 数据库:
  • 数据恢复
  • TiDB 节点扩容TiDB 多物理机集群部署
    Loading...