Oracle数据库RMAN恢复之数据文件的恢复详解_Oracle_数据库_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 数据库 > Oracle > Oracle数据库RMAN恢复之数据文件的恢复详解

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

 2013/8/10 1:20:04    程序员俱乐部  我要评论(0)
  • 摘要:Oracle数据库REAN恢复之数据文件的恢复是本文我们主要要介绍的内容,我们知道,除了system表空间的数据文件(mount)之外,其它数据文件可以在open(mount也可以)状态下恢复。open状态下恢复数据文件可以减少数据库停用的时间,所以应该在open状态下恢复这些数据文件。示例一:数据文件被误删除数据库关闭状态下删除非系统表空间数据文件。启动数据库到mount状态。脱机丢失的数据文件,alterdatabasedatafilenoffline。打开数据库
  • 标签:详解 文件 ORA 数据库 数据 Oracle Oracle数据库

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。

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

    class="dp-xml">
  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.  
  3. SQL> select file#,error from v$recover_file;      
  4.  
  5. FILE# ERROR    
  6.  
  7. ---------- -----------------------------------------------------------------     
  8.  
  9. 5 FILE NOT FOUND    
  10.  
  11. SQL> select file#,name from v$datafile where file#=5;    
  12.  
  13. FILE# NAME    
  14.  
  15. ---------- --------------------------------------------------------------------------------     
  16.  
  17. 5 /oracle/10g/oracle/product/10.2.0/oradatabak/example01.dbf    
  18.  
  19. --恢复数据文件     
  20.  
  21. [oracle@localhost ~]$ rman target sys/oracle@oralife nocatalog    
  22.  
  23. RMAN> run {    
  24.  
  25. 2> startup force mount;    
  26.  
  27. 3> sql 'alter database datafile 5 offline';    
  28.  
  29. 4> sql 'alter database open';    
  30.  
  31. 5> set newname for datafile 5 to '$ORACLE_BASE/product/10.2.0/oradata/oralife/example01.dbf';    
  32.  
  33. 6> restore datafile 5;    
  34.  
  35. 7> switch datafile 5;    
  36.  
  37. 8> recover datafile 5;    
  38.  
  39. 9> sql 'alter database datafile 5 online';    
  40.  
  41. 10> }    
  42.  
  43. SQL> select file#,name from v$datafile where file#=5;    
  44.  
  45. FILE# NAME    
  46.  
  47. ---------- --------------------------------------------------------------------------------     
  48.  
  49. 5 /oracle/10g/oracle/product/10.2.0/oradata/oralife/example01.dbf    
  50.  
  51. SQL> select file#,error from v$recover_file;      
  52.  
  53. no rows selected  

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

发表评论
用户名: 匿名