oracle回滚误删并且commit的表

1.恢复到某个时刻

insert into qual_temp_detail select * from qual_temp_detail 
as of timestamp to_date('2014-12-29 08:30:22', 'yyyy-mm-dd hh24:mi:ss') 

其中qual_temp_detail是要回滚的数据表名称。 to_date函数的第一个参数是要回滚到的时间点。妈妈再也不怕我手滑了!

 

2. 恢复到15分钟以前

--闪回到15分钟前 
select *  from orders  as of timestamp (systimestamp - interval ''15'' minute)  where ...... 
这里可以使用DAY、SECOND、MONTH替换minute,例如: 
SELECT * FROM orders AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL ''2'' DAY) 

 

3.恢复到几天前

--闪回到两天前 
select * from orders  as of timestamp (sysdate - 2) where......... 

4. 如果表结构已经变动

/*2.FLASHBACK DROP*/ 

  1.flashback table orders to before drop; 
  
  2.如果源表已经重建,可以使用rename to子句: 
  flashback table order to before drop  rename to order_old_version; 
  
/*3.FLASHBACK TABLE*/ 

  1.首先要启用行迁移: 
  alter table order enable row movement; 
  2.闪回表到15分钟前: 
  flashback table order  to timestamp systimestamp - interval ''15'' minute; 
    闪回到某个时间点: 
  FLASHBACK TABLE order TO TIMESTAMP    TO_TIMESTAMP('2007-09-12 01:15:25 PM','YYYY-MM-DD HH:MI:SS AM')

 

posted @ 2014-12-29 09:13  shikelong  阅读(1146)  评论(0编辑  收藏  举报