1.2 表误删
【oracle表误删恢复处理(没有使用PURGE[用于清空回收站]永久删除选项)】
flashback数据库闪回技术
数据库级别:Flashback Database
表级别:Flashback Drop和Flashback Table,Flashback Data Archive
记录级别:Flashback Version Query和Flashback Transaction Query
语法:
1).flashback table table_name to timestamp .... [根据时间点闪回]
2).flash table table_name to scn ... [根据scn号回退,实际操作基本上不会用到]
3).flashback table table_name to timestamp ... enable triggers. [创建表,开启行移动模式,用的不多]
4).flashback table a to TIMESTAMP systimestamp - interval '5' minute; [回退到几分钟之前,用的多]需要开启行移动(alter table a enable row movement;)
1.2.1一.表的恢复
1. 从flashback(闪回技术)里查询被误删的表
select * from sys.recyclebin$;(如果不知道误删的是哪一张表,查看最近删除的表)
2.执行表的恢复
flashback table a to before drop (a表示你要恢复的表名)
注意:如果闪回的表名与当前的表名相同,需要重命名才可以闪回
flashback table a to before drop rename to a1;
1.1.2二.表数据的恢复
1.先用Flashback Transaction Query视图查询(可以查询表名称,事务提交时间等字段)
语法:
select * from flashback_transaction_query where table_name='a' (a表示根据表明查)
2.执行表记录恢复
1.一般先根据时间进行查询,查询语句模式为
select * from a as of timestamp to_timestamp(time,'yyyy-mm-dd hh24:mi:ss'); a指表名称,time指某个时间点
如select * from a as of timestamp to_timestamp('2009-12-11
20:53:57','yyyy-mm-dd hh24:mi:ss');
2.数据直接退回到某个时间段,需要开启行移动功能
行移动语句(alter table a enable row movement;)
,退回功能语句为flashback table tb to timestamp
to_timestamp(time,'yyyy-mm-dd hh24:mi:ss');
如flashback table a to timestamp to_timestamp('2009-12-11
20:47:30','yyyy-mm-dd hh24:mi:ss');
【mysql数据误删情况要有备份情况才能恢复】
数据库数据误删除恢复
最新推荐文章于 2025-07-04 16:04:30 发布