Oracle数据库RMAN恢复之数据文件的恢复详解

Oracle数据库REAN恢复数据文件的恢复是本文我们主要要介绍的内容,我们知道,除了system表空间的数据文件(mount)之外,其它数据文件可以在open(mount也可以)状态下恢复。open状态下恢复数据文件可以减少数据库停用的时间,所以应该在open状态下恢复这些数据文件。

示例一:数据文件被误删除

数据库关闭状态下删除非系统表空间数据文件。

启动数据库到mount状态。

脱机丢失的数据文件,alter database datafile n offline。

打开数据库,alter database open。

转储数据文件,restore datafile n。

使用recover datafile n 应用归档日志。

联机数据文件,alter database datafile n online。

--数据库关闭状态下删除非系统表空间数据文件。

 
 
 
  1. [oracle@localhost ~]$  rm $ORACLE_BASE/product/10.2.0/oradatabak/example01.dbf;  
  2. SQL> select file#,error from v$recover_file;    
  3. FILE# ERROR  
  4. ---------- -----------------------------------------------------------------   
  5. 5 FILE NOT FOUND  
  6. SQL> select file#,name from v$datafile where file#=5;  
  7. FILE# NAME  
  8. ---------- --------------------------------------------------------------------------------   
  9. 5 /oracle/10g/oracle/product/10.2.0/oradatabak/example01.dbf  
  10. --恢复数据文件   
  11. RMAN> run {  
  12. startup force mount;  
  13. sql 'alter database datafile 5 offline';  
  14. sql 'alter database open';  
  15. restore datafile 5;  
  16. recover datafile 5;  
  17. sql 'alter database datafile 5 online';  
  18. 8> }  

示例二:数据文件所在磁盘出现损坏

数据库关闭状态下删除非系统表空间数据文件。

启动数据库到mount状态。

脱机丢失的数据文件,alter database datafile n offline。

打开数据库,alter database open。

在restore database之前,执行set newname为数据文件指定新的位置。

在restore database之后,执行switch datafile改变控制文件中数据文件位置和名称。

之后通过执行recover database应用归档日志。

联机数据文件,alter database datafile n online。

--数据库关闭状态下删除非系统表空间数据文件。

 
 
 
  1. [oracle@localhost ~]$  rm $ORACLE_BASE/product/10.2.0/oradatabak/example01.dbf;  
  2. SQL> select file#,error from v$recover_file;    
  3. FILE# ERROR  
  4. ---------- -----------------------------------------------------------------   
  5. 5 FILE NOT FOUND  
  6. SQL> select file#,name from v$datafile where file#=5;  
  7. FILE# NAME  
  8. ---------- --------------------------------------------------------------------------------   
  9. 5 /oracle/10g/oracle/product/10.2.0/oradatabak/example01.dbf  
  10. --恢复数据文件   
  11. [oracle@localhost ~]$ rman target sys/oracle@oralife nocatalog  
  12. RMAN> run {  
  13. 2> startup force mount;  
  14. 3> sql 'alter database datafile 5 offline';  
  15. 4> sql 'alter database open';  
  16. 5> set newname for datafile 5 to '$ORACLE_BASE/product/10.2.0/oradata/oralife/example01.dbf';  
  17. 6> restore datafile 5;  
  18. 7> switch datafile 5;  
  19. 8> recover datafile 5;  
  20. 9> sql 'alter database datafile 5 online';  
  21. 10> }  
  22. SQL> select file#,name from v$datafile where file#=5;  
  23. FILE# NAME  
  24. ---------- --------------------------------------------------------------------------------   
  25. 5 /oracle/10g/oracle/product/10.2.0/oradata/oralife/example01.dbf  
  26. SQL> select file#,error from v$recover_file;    
  27. no rows selected 

关于Oracle数据库RMAN恢复之数据文件的恢复的相关知识就介绍到这里了,希望本次的介绍能够对您有所收获!

网站栏目:Oracle数据库RMAN恢复之数据文件的恢复详解
分享网址:http://www.csdahua.cn/qtweb/news41/345641.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网