oracle中恢复删除的表
1.表恢复,如果在删除表的同时删除的数据,那么表恢复也能恢复当时删除时的数据
-----查询删除的表
select * from recyclebin order by droptime desc
---恢复删除的表
flashback table tablename to before job
2.表数据恢复
对误删的表记录,只要没有 TRUNCATE 语句,就可以根据事务的提交时间进行选择恢复,一般步骤有:
1、先从 FLASHBACK_TRANSACTION_QUERY 视图里查询,视图提供了供查询用的表名称、事务提交时间、UNDO_SQL等字段。
注意啦 ,要先允许表移动,这段话我看着有点晕啊(这个命令的作用是,允许Oracle 修改分配给行的rowid。在Oracle 中,插入一行时就会为它分配一个rowid,而且这一行永远拥有这个rowid。闪回表处理会对EMP 完成DELETE,并且重新插入行,这样就会为这些行分配一个新的rowid。要支持闪回就必须允许Oracle 执行这个操作)
ALTER TABLE TESTVARCHAR ENABLE ROW MOVEMENT;
----先可以查询
SELECT * FROM FLASHBACK_TRANSACTION_QUERY WHERE TABLE_NAME='tablename'
----执行恢复
flashback table tablename to timestamp to_timestamp( '2013-8-9 14:30:40','yyyy-mm-dd:HH24:mi:ss');