一、找回误删的表
1、在recyclebin(类似于回收站)中查找drop的表:select * from recyclebin order bydroptime desc;
2、恢复表和表数据:flashback table ‘表名’ to before drop;值得注意的是,当一张表被drop两次及两次以上的时候,flashback命令只恢复dropscn大的哪个表。如果在drop表的时候再结束加上purge,如:drop table '表名' purge;,则无法通过flashback命令恢复。因为在加上了purge后drop,就类似粉碎文件,文件则不会放入回收站中。
最后在记录下如何查找被修改的数据,方便以后使用:
查找指定时间的快照
select * from '表名' as of timestamp to_timestamp('2019-12-10 15:59:00', 'yyyy-mm-dd hh24:mi:ss');
alter table '表名' enable row movement;
row movement 意思就是,一个现存的行允许改变其rowid(物理存储地址),通常情况下,数据行在分配了空间之后,行的rowid就固定了。即使以后行长度超出预留的空间,也不会将其移动。12c的“ALTER TABLE XXX MOVE; ”并不受此控制。在修改前最好确认一下当前是否允许行移动,如果是disable的话,操作完后最好改回到disable :“select ROW_MOVEMENT, TABLE_NAME from user_tables”。
回闪指定时间的快照数据
flashback table '表名' to timestamp TO_TIMESTAMP('2019-12-10 15:59:00', 'yyyy-mm-dd hh24:mi:ss');
来源:https://www.cnblogs.com/gzyfj/p/12021694.html