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

Tidb数据恢复

表删除delete删除恢复(误删除)

指定时间查询 恢复

#恢复数据
#查看安全点
select * from mysql.tidb where variable_name='tikv_gc_safe_point';
#安全时间
select * from mysql.tidb where variable_name= 'tikv_gc_life_time';
#避免操作过慢 延长安全时间
update mysql.tidb set variable_value= '36h' where variable_name='tikv_gc_life_time';

select * from order as of timestamp '2024-11-11 19:04:00';


select a.* FROM (
           select *
FROM  order a  as of timestamp '2024-11-11 19:04:00') a
WHERE   a.CREATE_DATE >= DATE_FORMAT(CURDATE(), '%Y-%m-%d')
ORDER BY a.CREATE_DATE DESC;

设置历史时间回滚

#恢复数据
# 查看安全点
select * from mysql.tidb where variable_name='tikv_gc_safe_point';
# 备份安全时间点
select * from mysql.tidb where variable_name= 'tikv_gc_life_time';
#避免操作过慢
update mysql.tidb set variable_value= '36h' where variable_name='tikv_gc_life_time';

# 设置时间历史时间
set @@tidb_snapshot="2024-11-11 12:49:32";
select * from order;

# 回滚数据后
#把tidb_snapshot设置成当前的时间,为空就是当前时间
set @@tidb_snapshot="";
select * from order;

#还原到最初的设置 备份安全时间点
update mysql.tidb set variable_value= '10m0s' where variable_name='tikv_gc_life_time';
select * from mysql.tidb where variable_name= 'tikv_gc_life_time';
select * from order;

DDL数据回滚(误清空表)

模式删除数据操作

#模式删除数据
truncate table order;
insert into order values(1),(2),(3);
truncate table order;
insert into order values(4),(5),(6);
select * from order;
mysql> select * from order;
+------+
| c    |
+------+
|    4 |
|    5 |
|    6 |
+------+
3 rows in set (0.01 sec)

恢复数据

#恢复数据
admin show ddl jobs where table_name='t_tc_order_row';

select * from order;



truncate  table order; # 20:42:22


#查看安全点的时间
select * from mysql.tidb where variable_name='tikv_gc_safe_point';
select * from mysql.tidb where variable_name= 'tikv_gc_life_time';
#设置gc清理时间
update mysql.tidb set variable_value= '36h' where variable_name='tikv_gc_life_time';

truncate  table order; # 20:42:23

#设置第一个truncate table往前一点点的恢复时间
set @@tidb_snapshot="2024-11-11 20:42:22";
select * from order;

#恢复上一个truncate数据
# 方法一:重复使用dumpling设置不同的snapshot
tiup dumpling -uroot -p'123456' -P4000 --host 192.168.1.1 --filetype sql -o /tmp/test1 -r 200000 -F 256MiB -T test.trun_tab --snapshot "2024-11-11 20:42:22";

# 方法二:
set @@tidb_snapshot="";
# 回溯表数据
flashback table order to trun_tab_02
# 回溯时间
# flashback TABLE order TO TIMESTAMP '2024-11-11 20:42:22';
select * from order;

# 查看版本
SELECT tidb_version();

#恢复默认设置
update mysql.tidb set variable_value= '1h' where variable_name='tikv_gc_life_time';
select * from mysql.tidb where variable_name= 'tikv_gc_life_time';


http://www.kler.cn/a/389282.html

相关文章:

  • react的创建与书写
  • 【AI技术对电商的影响】
  • STM32学习笔记------GPIO介绍
  • 现代Web开发:Vue 3 组件化开发实战
  • Django Form
  • Vue3入门介绍及快速上手
  • [CKS] Create/Read/Mount a Secret in K8S
  • 软考中级 软件设计师 上午考试内容笔记(个人向)Part.3
  • Linux 消息队列
  • go template 模板字符串
  • std::thread线程通知、等待、让渡
  • 绿色能源发展关键:优化风电运维体系
  • 初学Java基础---Day21---正则表达式,日期类,Math类,Random类,System类,Runtime类,大数值运算类,
  • 【cursor添加azure】在cursor中添加azure的openai api
  • 面向对象试题带答案
  • Linux网络管理和修改配置文件
  • HBase 安装与基本操作指南
  • 机器学习与深度学习-1-线性回归从零开始实现
  • MyBatis xml 文件中 SQL 语句的小于号未转义导致报错
  • 高通Quick板上安装编译Ros1 noetic,LeGO_LOAM,FAR_Planner和rslidar_sdk
  • C#里演示使用数学的三角函数
  • 【JavaEE】多线程(1)
  • ssm基于Vue的戏剧推广网站+vue
  • C++ IO流
  • 缺陷的根本原因,出现在代码中的原因可能有哪些?
  • 【架构-37】Spark和Flink