oracle误删数据之表闪回

那天做表导出时,误删表了,把我急死了.后来在网上找到oracle的闪回功能,把表找回来了.
(好像有时间限制,如果误删后,马上找回吧,这样比较安全. 注意做好数据备份!!!    )

flashback table tablename to before drop;

 

   1. 进行查询闪回如: 

Select * From 表名 As Of Timestamp to_Timestamp('2009-7-24  18:07:30','yyyy-mm-dd hh24:mi:ss') 
Where id='CQn2Q9xbvy' 
      
      2. 闪回的数据重新插入到机表中,如: 

Insert Into 表名 
(Select * From 表名 As Of Timestamp to_timestamp('2009-07-24 16:08:30','YYYY-MM-DD HH24:MI:SS') 

      3. 恢复被删除的基表 

Flashback Table 表名 To Before Drop; 

      4.数据库闪回 

Flashback Database To Scn sid; --sid:指定的系统改变号 
Flashback Database To Timestamp to_timestamp('2009-07-24 16:08:30','YYYY-MM-DD HH24:MI:SS') 
      

      然后在通过插入语句将原始的数据插入到表中,问题总算是解决了。 

posted @ 2009-08-05 09:33  左少白  阅读(427)  评论(0编辑  收藏  举报