龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > Oracle 技术 >

Oracle数据库RMAN不完全恢复之基于SCN恢复

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
之前我们介绍了: Oracle 数据库 RMAN不完全恢复 之基于时间恢复 ,本文我们介绍一下Oracle数据库RMAN不完全恢复的 基于SCN恢复 的相关知识,希望能够对您有所帮助。 基于SCN恢复是指当出

之前我们介绍了:Oracle数据库RMAN不完全恢复之基于时间恢复,本文我们介绍一下Oracle数据库RMAN不完全恢复的基于SCN恢复的相关知识,希望能够对您有所帮助。

基于SCN恢复是指当出现用户错误(例如误删除表、误截断表)时,恢复到指定SCN点的恢复。

模拟误删除表t_user。

执行rman,启动数据库到mount状态。

使用set until scn命令指定要恢复到的scn点。

转储、恢复数据库,并使用resetlogs选项打开数据库。

--模拟误删除表t_user。   

  1. SQL> select count(*) from t_user;    
  2. COUNT(*)    
  3. ----------     
  4. 2    
  5. SQL> insert into t_user select 'spring mvc_' from dual;    
  6. 1 row created.    
  7. SQL> commit;    
  8. Commit complete.    
  9. SQL> alter system switch logfile;    
  10. System altered.    
  11. SQL> alter system checkpoint;    
  12. System altered.    
  13. SQL> select current_scn from v$database;    
  14. CURRENT_SCN    
  15. -----------     
  16. 1214281    
  17. SQL> drop table t_user;    
  18. Table dropped.  

--恢复   

  1. [oracle@localhost ~]$ rman target sys/oracle@oralife nocatalog    
  2. RMAN> run {    
  3. 2> startup force mount;    
  4. 3> set until scn=1214281;    
  5. 4> restore database;    
  6. 5> recover database;    
  7. 6> sql 'alter database open resetlogs';    
  8. 7> } 

--已恢复   

  1. SQL> select count(*) from t_user;    
  2. COUNT(*)    
  3. ----------     

在实际环境下,应该使用LogMiner确定误操作SCN点。

在执行了不完全恢复之后,推荐删除早期所有备份,重新备份数据库。

以上就是Oracle数据库RMAN不完全恢复之基于SCN恢复的全部内容,本文我们就介绍到这里了,希望本次的介绍能够对您有所收获!

精彩图集

赞助商链接