Tidb 误删除之后数据恢复
TiDB4.0引入FLASHBACK TABLE语法,可在GC生命周期内恢复被DROP或TRUNCATE的表数据。通过tidb_gc_life_time变量(默认10分钟)配置数据保留时间,使用SQL查询安全点。恢复TRUNCATE表需重命名,如"FLASHBACK TABLE t TO t1"。可通过"SET GLOBAL tidb_gc_life_time&quo
·
一、场景
二、解决方法
在 TiDB 4.0 中,引入了 FLASHBACK TABLE 语法,其功能是在 Garbage Collection (GC) life time 时间内,可以用 FLASHBACK TABLE 语句来恢复被 DROP 或 TRUNCATE 删除的表以及数据。
可以使用系统变量 tidb_gc_life_time 配置数据的历史版本的保留时间(默认值是 10m0s)。可以使用以下 SQL 语句查询当前的 safePoint,即 GC 已经清理到的时间点
SELECT * FROM mysql.tidb WHERE variable_name = 'tikv_gc_safe_point';
tidb_gc_life_time表示数据的历史版本保留时间(默认为10分钟)
show VARIABLES like 'tidb_gc_life_time'
配置自动清理时间
SET GLOBAL tidb_gc_life_time="20m";
特别注意
恢复被 TRUNCATE 的表数据,由于被 TRUNCATE 的表还存在,所以需要重命名被恢复的表,否则会报错表 t 已存在
恢复命令
TRUNCATE TABLE t; FLASHBACK TABLE t TO t1;

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)