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

数据库 Oracle
本文我们主要介绍了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.  
  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恢复之数据文件的恢复的相关知识就介绍到这里了,希望本次的介绍能够对您有所收获!

【编辑推荐】

  1. Oracle数据库PL/SQL快捷键设置详解
  2. Oracle数据库诊断工具RDA的安装与使用详解
  3. Oracle数据库GLOBAL_NAMES参数的详细研究
  4. Oracle数据库归档模式的切换及其相关操作详解
  5. Oracle 10g UNDO表空间过大导致磁盘空间不足的解决
责任编辑:赵鹏 来源: CSDN博客
相关推荐

2011-08-23 11:09:36

Oraclerman恢复system表空间恢复

2011-08-29 17:00:47

Oracle数据库RM表空间数据块介质

2011-08-30 09:35:10

OracleRMAN不完全恢复基于时间恢复

2011-08-30 09:50:22

OracleRMAN不完全恢复基于SCN恢复

2011-05-17 11:33:43

oracle数据库

2010-03-31 10:39:40

RMANOracle

2011-08-30 10:02:18

OracleRMAN不完全恢复基于日志序列号恢复

2011-04-11 13:46:17

Oracle数据库备份

2011-05-24 10:26:12

Oracle数据库日志文件

2019-06-12 08:57:43

Oracle数据库恢复

2011-04-02 11:02:54

SQL Server数文件恢复

2011-05-11 13:25:57

Oracle数据库后备恢复

2011-05-26 09:36:07

Oracle数据库Redo故障

2011-02-28 13:31:17

Oracle数据库

2009-11-20 13:29:59

Oracle数据库恢复

2011-03-24 17:21:42

Oracle数据库Redo故障

2011-08-15 23:14:34

Oraclerman环境配置

2011-08-03 18:42:21

Oracle数据库重做日志

2010-05-06 09:42:28

Oracle表空间

2011-05-20 09:35:24

Oracle数据库恢复备份
点赞
收藏

51CTO技术栈公众号