ORACLE rman 部分恢复

查出数据库文件名列表


前面已经将库置mount,从controlfile中得到logfile和datafile,tempfile列表,在恢复时用到
sqlplus / as sysdba
set linesize 120
set pagesize 0
col name format a70
select file#,name from V$datafile;
select file#,name from V$tempfile;
col MEMBER format a70
select * from V$logfile;


Step No7 
restore


#编辑数据库恢复的标准恢复脚本,将数据文件恢复到指定位置


库较大,而183的/dbfile1空间较小,全库恢复空间不够。作为恢复测试,只恢复关键表空间:
SYSTEM
SUSAUX
UNDOTBS1
USERS


只恢复关键表空间和部分业务数据表空间,确认要恢复哪些数据文件
sqlplus / as sysdba
select * from v$tablespace;


我们恢复0,1,2,4
SYSTEM SYSAUX UNDOTBS1 USERS
sqlplus / as sysdba
set linesize 120
set pagesize 0
col name format a70
select file#,name from V$datafile where ts# in (0,1,2,4);


col name format a70
select name from v$tablespace where name not in ('SYSTEM','SYSAUX','UNDOTBS1','USERS');






export ORACLE_SID=prdtestdb1
生成文件restoreprdtestdb1.rman:
connect target /
RUN {
set command id to '123';
allocate channel d1 type disk ;
allocate channel d2 type disk ;
allocate channel d3 type disk ;
allocate channel d4 type disk ;
SET NEWNAME FOR DATAFILE '原文件名'          to '/dbfile1/database/prdtestdb1/新文件名';  
...
restore database skip tablespace '其他表空间1','其他表空间2',...;
SWITCH DATAFILE ALL;
release channel d1;
release channel d2;
release channel d3;
release channel d4;
}
exit


export ORACLE_SID=prdtestdb1
nohup rman cmdfile restoreprdtestdb1.rman msglog restoreprdtestdb1.log &


等待restore完成。


如果更多的archivelog backup生成,ftp过来,再次注册新的文件:
--注册备份集
catalog start with '/dbfile2/backupprdtestdb1';






Step No8 
recover


直接执行
rman target /
recover database skip tablespace '其他表空间1','其他表空间2',...;


在recover到最后时会按预期报错:
archive log thread=n sequence=xxx
RMAN-
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值