Oracle数据库RMAN不完全恢复之基于SCN恢复_Oracle_数据库_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 数据库 > Oracle > Oracle数据库RMAN不完全恢复之基于SCN恢复

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

 2013/8/10 1:21:15    程序员俱乐部  我要评论(0)
  • 摘要:之前我们介绍了:Oracle数据库RMAN不完全恢复之基于时间恢复,本文我们介绍一下Oracle数据库RMAN不完全恢复的基于SCN恢复的相关知识,希望能够对您有所帮助。基于SCN恢复是指当出现用户错误(例如误删除表、误截断表)时,恢复到指定SCN点的恢复。模拟误删除表t_user。执行rman,启动数据库到mount状态。使用setuntilscn命令指定要恢复到的scn点。转储、恢复数据库,并使用resetlogs选项打开数据库。--模拟误删除表t_user。SQL>
  • 标签:ORA 数据库 数据 Oracle Oracle数据库

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

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

模拟误删除表t_user。

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

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

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

--模拟误删除表t_user。   

    class="dp-xml">
  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恢复的全部内容,本文我们就介绍到这里了,希望本次的介绍能够对您有所收获!

发表评论
用户名: 匿名