当前所在位置:珠峰网资料 >> 计算机 >> Oracle认证 >> 正文
Oracle认证综合辅导:Oracle数据库RMAN恢复之数据文件
发布时间:2012/9/5 22:33:31 来源:城市网学院 编辑:admin
   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恢复之数据文件的恢复的相关知识就介绍到这里了,希望本次的介绍能够对您有所收获!
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved