来源:Oracle认证 发布时间:2012-11-12 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.
--数据库关闭状态下删除非系统表空间数据文件.
[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恢复之数据文件的恢复的相关知识就介绍到这里了,希望本次的介绍能够对您有所收获!
考试大温馨提示:本内容来源于网络,仅代表作者个人观点,与本站立场无关,仅供您学习交流使用。其中可能有部分文章经过多次转载而造成文章内容缺失、错误或文章作者不详等问题,请您谅解。如有侵犯您的权利,请联系我们,本站会立即予以处理。
① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;
② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。