oracle 回闪技术恢复误删数据
在oralce中,我们有时误删了某些数据或者删除了某些表;这时我们需要恢复这些数据。
第一,delete数据后恢复
delete某些数据后,可以使用下面语句找到,这个主要是使用Oracle的快照功能。查询到当前时间的前100minute的数据。
Sql代码  
select *    
  from skiller AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '100' MINUTE)  
select *
  from skiller AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '100' MINUTE) 这个时间由不同情况来定义。
也可以定义为秒、时等等
可以使用下面语句来查看哪些数据是在这个时间段内的区别。
Sql代码  
select *    
  from skiller AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '100' MINUTE)    
 where skill_id not in (select skill_id from skiller)  
select *
  from skiller AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '100' MINUTE)
 where skill_id not in (select skill_id from skiller)        具体怎么区别改前后的数据,请根据实际情况
 删选出了这些数据,我们就可以将这些数据插入到我们现有表中,示例见下面SQL
Sql代码  
insert into skiller select *    
  from skiller AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '100' MINUTE)    
 where skill_id not in (select skill_id from skiller)  
insert into skiller select *
  from skiller AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '100' MINUTE)
 where skill_id not in (select skill_id from skiller)
  
第二,Drop数据后恢复
当我们drop一个表后,我们可以在我们的用户回收站内看到这些数据。比如:
Sql代码  
select * from user_recyclebin;  
select * from user_recyclebin; 在这个结果集中我们可以看到我们删除对象的结果集。
这个只是查看,你可以从中找到你drop的表名以及其他信息。
找到你要恢复的对象名,比如表名。
使用下面语句就可以恢复你的对象了。
Sql代码  
flashback table table_name to before drop;   
flashback table table_name to before drop;      
   
 
 
                    
                 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号