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

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.mrgr.cn/news/70528.html

相关文章:

  • 监控架构-Prometheus-普罗米修斯
  • QML —— ListView代理,附横向滑动效果(附源码)
  • 游戏引擎中LOD渲染技术
  • 【Linux探索学习】第十二弹——初识进程:进程的定义、描述和一些简单的相关操作
  • 软件测试计划和测试用例详解
  • Polybase要求安装orcale jre 7
  • 【随笔】做售前工程师的一些感悟
  • 卡内基音乐厅回响肖邦旋律:旅美钢琴学者何超与导师洪勋的师生情缘
  • Cesium基础-(Entity)-(label )
  • ggalign:热图等复杂组合图及图形数据对齐的 ggplot2 扩展
  • 计算机在启动一直到系统加载完成期间进行了哪些操作
  • 【缠论箱体预测】主图指标 缠论自动划箱体 看透压力支撑对趋势胸有成竹 (电脑+手机源码)
  • 206面试题(47~60)
  • fask的一个程序
  • 稳恒磁场(2)
  • c语言学习11跳转结构
  • 软件测试常用设计模式
  • Java项目实战II基于微信小程序的学生公寓电费信息管理系统(开发文档+数据库+源码)
  • QtWebServer
  • 【WRF模拟】全过程总结:WPS预处理及WRF运行