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

 

 

 

 

 

 

 

 

 

posted @ 2013-08-19 16:16  残阳飞雪  阅读(347)  评论(0编辑  收藏  举报