oracle恢复误删除数据
适⽤范围:
适⽤于oracle 10g or high
处理过程
1.闪回drop的表:(当表所在的表空间空间不足,oracle也会删除回收站里的内容,所以此方法需要表空间空间充足、recyclebin没有被清空、删除时没加purge)
drop删除的表存放在recyclebin中,基于recyclebin闪回。
查看回收站对象:
SELECT owner,object_name,original_name,type,ts_name,droptime FROM dba_recyclebin;
闪回:
FLASHBACK TABLE TEST TO BEFORE DROP;或者
FLASHBACK TABLE "BIN$BLmi9vltN3TgUKjAgYxoiA==$0" TO BEFORE DROP; (删除多次按照original_name闪回)或者
flashback table test to before drop rename to test1; (删除后原表已经产生新的数据,闪回时候可以rename一个新表,然后再insert到原表中)
2.闪回dml修改的表:
dml修改后的表是基于undo闪回。
按scn闪回:
flashback table test to scn xxxxxx;
按时间闪回:
flashback table test to timestamp to_timestamp('2023-07-02 16:26:11','yyyy-mm-dd hh24:mi:ss');
创建表的方式恢复:
create table test1 as select * from test as of timestamp to_timestamp('2023-07-02 16:30:11','yyyy-mm-dd hh24:mi:ss');