Oracle数据库RMAN恢复之数据文件

2012-11-12

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.

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

  [oracle@localhost ~]$  rm $ORACLE_BASE/product/10.2.0/oradatabak/example01.dbf;

  SQL> select file#,error from v$recover_file;

  FILE# ERROR

  ---------- --------------------------------------------------------

  5 FILE NOT FOUND

  SQL> select file#,name from v$datafile where file#=5;

  FILE# NAME

  ---------- ---------------------------------------------------------

  5 /oracle/10g/oracle/product/10.2.0/oradatabak/example01.dbf

  --恢复数据文件

  RMAN> run {

  startup force mount;

  sql 'alter database datafile 5 offline';

  sql 'alter database open';

  restore datafile 5;

  recover datafile 5;

  sql 'alter database datafile 5 online';

  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.

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

  [oracle@localhost ~]$  rm $ORACLE_BASE/product/10.2.0/oradatabak/example01.dbf;

  SQL> select file#,error from v$recover_file;

  FILE# ERROR

  ---------- -----------------------------------------------------------------

  5 FILE NOT FOUND

  SQL> select file#,name from v$datafile where file#=5;

  FILE# NAME

  ---------- ---------------------------------------------------------

  5 /oracle/10g/oracle/product/10.2.0/oradatabak/example01.dbf

  --恢复数据文件

  [oracle@localhost ~]$ rman target sys/oracle@oralife nocatalog

  RMAN> run {

  2> startup force mount;

  3> sql 'alter database datafile 5 offline';

  4> sql 'alter database open';

  5> set newname for datafile 5 to '$ORACLE_BASE/product/10.2.0/oradata/oralife/example01.dbf';

  6> restore datafile 5;

  7> switch datafile 5;

  8> recover datafile 5;

  9> sql 'alter database datafile 5 online';

  10> }

  SQL> select file#,name from v$datafile where file#=5;

  FILE# NAME

  ---------- ----------------------------------------------------------------

  5 /oracle/10g/oracle/product/10.2.0/oradata/oralife/example01.dbf

  SQL> select file#,error from v$recover_file;

  no rows selected

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

  考试大温馨提示:本内容来源于网络,仅代表作者个人观点,与本站立场无关,仅供您学习交流使用。其中可能有部分文章经过多次转载而造成文章内容缺失、错误或文章作者不详等问题,请您谅解。如有侵犯您的权利,请联系我们,本站会立即予以处理。

分享到:
0
相关阅读
友情链接
© 2018 我考网 http://www.woexam.com 中国互联网举报中心 湘ICP备18023104号 京公网安备 11010802020116号
违法和不良信息举报:9447029@qq.com