Welcome 微信登录

首页 / 数据库 / MySQL / RMAN恢复-数据文件与表空间的恢复

数据文件恢复
open状态下恢复关闭后意外丢失的数据文件
除了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. --数据库关闭状态下删除非系统表空间数据文件。   
  2. [Oracle@localhost ~]$  rm $ORACLE_BASE/product/10.2.0/oradatabak/example01.dbf;  
  3.   
  4. SQL> select file#,error from v$recover_file;    
  5.   
  6.      FILE# ERROR  
  7. ---------- -----------------------------------------------------------------   
  8.          5 FILE NOT FOUND  
  9.   
  10. SQL> select file#,name from v$datafile where file#=5;  
  11.   
  12.      FILE# NAME  
  13. ---------- --------------------------------------------------------------------------------   
  14.          5 /oracle/10g/oracle/product/10.2.0/oradatabak/example01.dbf  
  15.   
  16. --恢复数据文件   
  17. RMAN> run {  
  18.  startup force mount;  
  19.  sql "alter database datafile 5 offline";  
  20.  sql "alter database open";  
  21.  restore datafile 5;  
  22.  recover datafile 5;  
  23.  sql "alter database datafile 5 online";  
  24. 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. --数据库关闭状态下删除非系统表空间数据文件。   
  2. [oracle@localhost ~]$  rm $ORACLE_BASE/product/10.2.0/oradatabak/example01.dbf;  
  3.   
  4. SQL> select file#,error from v$recover_file;    
  5.   
  6.      FILE# ERROR  
  7. ---------- -----------------------------------------------------------------   
  8.          5 FILE NOT FOUND  
  9.   
  10. SQL> select file#,name from v$datafile where file#=5;  
  11.   
  12.      FILE# NAME  
  13. ---------- --------------------------------------------------------------------------------   
  14.          5 /oracle/10g/oracle/product/10.2.0/oradatabak/example01.dbf  
  15.   
  16. --恢复数据文件   
  17. [oracle@localhost ~]$ rman target sys/oracle@oralife nocatalog  
  18. RMAN> run {  
  19. 2> startup force mount;  
  20. 3> sql "alter database datafile 5 offline";  
  21. 4> sql "alter database open";  
  22. 5> set newname for datafile 5 to "$ORACLE_BASE/product/10.2.0/oradata/oralife/example01.dbf";  
  23. 6> restore datafile 5;  
  24. 7> switch datafile 5;  
  25. 8> recover datafile 5;  
  26. 9> sql "alter database datafile 5 online";  
  27. 10> }  
  28.   
  29. SQL> select file#,name from v$datafile where file#=5;  
  30.   
  31.      FILE# NAME  
  32. ---------- --------------------------------------------------------------------------------   
  33.          5 /oracle/10g/oracle/product/10.2.0/oradata/oralife/example01.dbf  
  34.   
  35. SQL> select file#,error from v$recover_file;    
  36.   
  37. no rows selected  
open状态下恢复打开后意外丢失的数据文件
除了system表空间的数据文件(mount)之外,其它数据文件可以在open(mount也可以)状态下恢复。open状态下恢复数据文件可以减少数据库停用的时间,所以应该在open状态下恢复这些数据文件。
示例一数据文件被误删除
数据库open状态下删除非系统表空间数据文件。
脱机丢失的数据文件,alter database datafile n offline。
转储数据文件,restore datafile n。
使用recover datafile n 应用归档日志。
联机数据文件,alter database datafile n online。
示例二数据文件所在磁盘出现损坏
数据库open状态下删除非系统表空间数据文件。
脱机丢失的数据文件,alter database datafile n offline。
在restore database之前,执行set newname为数据文件指定新的位置。
在restore database之后,执行switch datafile改变控制文件中数据文件位置和名称。
之后通过执行recover database应用归档日志。
联机数据文件,alter database datafile n online。

open状态下恢复未备份的数据文件
恢复方式与以上两种相同,因为数据文件没有备份,在转储数据文件时,会自动创建数据文件。

表空间恢复用Tomcat + Java JDBC 连接使用Oracle数据库自动undo管理下如何添加和删除回滚段相关资讯      Oracle教程 
  • Oracle中纯数字的varchar2类型和  (07/29/2015 07:20:43)
  • Oracle教程:Oracle中查看DBLink密  (07/29/2015 07:16:55)
  • [Oracle] SQL*Loader 详细使用教程  (08/11/2013 21:30:36)
  • Oracle教程:Oracle中kill死锁进程  (07/29/2015 07:18:28)
  • Oracle教程:ORA-25153 临时表空间  (07/29/2015 07:13:37)
  • Oracle教程之管理安全和资源  (04/08/2013 11:39:32)
本文评论 查看全部评论 (0)
表情: 姓名: 字数