一、场景

二、解决方法

在 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;

Logo

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

更多推荐