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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值