• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

如何使用 RMAN 异机恢复部分表空间

mysql 搞代码 4年前 (2022-01-09) 12次浏览 已收录 0个评论

在oracle 数据库的日常维护和使用期间难免会遇到误删数据(drop,delete, truncate)当我们使用常规手段(flashback query ,fl

在Oracle 数据库的日常维护和使用期间难免会遇到误删数据(drop,delete,, truncate)当我们使用常规手段(flashback query ,flashback drop)也无法恢复数据时,我们可以使用最近的逻辑备份,在异机使用dmp 来恢复相应的表,但是如果没有这些逻辑备份,但是有一个最近的rman 全备,那么我们就可以利用这个备份来恢复被误删的表空间,从而实现数据的恢复,这里我以NBU 的备份环境为例简单描述下如何来回复部分 表空间;

——-在nomount 状态 ,恢复控制文件
run {
allocate channel t1 type ‘sbt_tape’;
send ‘NB_ORA_SERV=netbackup,NB_ORA_CLIENT=http://www.linuxidc.com/MySql’;
restore controlfile to ‘/oracle11/oradata1/control011.ctl’ from ‘/c-2151157071-20141111-00’;
release channel t1 ;
}

——-在还原好控制文件后,将实例启动到mount状态,然后开始还原部分表空间数据文件:

rman target / nocatalog msglog=/home/oracledb/rman.log <<EOF
run {
allocate channel t1 type ‘sbt_tape’;
allocate channel t2 type ‘sbt_tape’;
send ‘NB_ORA_SERV=netbackup,NB_ORA_CLIENT=http://blog.gaodaima.com/lixora’;

set newname for datafile 1 to ‘/oracle11/oradata/datafile/system.262.762381347’ ;
set newname for datafile 3 to ‘/oracle11/oradata/datafile/undotbs1.264.762381401’;
set newname for datafile 4 to ‘/oracle11/oradata/datafile/undotbs2.266.762381455’;
set newname for datafile 227 to ‘/oracle11/oradata/datafile/system02.dbf’;
set newname for datafile 344 to ‘/oracle11/oradata/datafile/lixora.375.820259689’;
set newname for datafile 345 to ‘/oracle11/oradata/datafile/lixora.414.820949317’;

restore tablespace system,undotbs1,undotbs2,lixora ;
switch datafile all;

release channel t1;
release channel t2;
}
EOF本文来源gaodai#ma#com搞@@代~&码*网/

———【如果表空比较多,可以先批量生成表空间的 offline drop 命令】开始恢复数据库

rman target / msglog=recover.log << EOF
RUN{
ALLOCATE CHANNEL ch0 TYPE ‘SBT_TAPE’ ;
ALLOCATE CHANNEL ch1 TYPE ‘SBT_TAPE’ ;
send ‘NB_ORA_SERV=netbackup,NB_ORA_CLIENT=http://www.linuxidc.com/MySql’;
set until time “to_date(‘2014/11/11 14:00:00′,’yyyy/mm/dd hh24:mi:ss’)”;

recover database skip forever tablespace SYSAUX,TEMP,USERS,INDEX_DATA;

release channel ch0;
release channel ch1;
}
EOF

—以resetlogs 方式打开oracle数据库
alter database open resetlogs;

————————————–推荐阅读 ————————————–

RMAN 配置归档日志删除策略

Oracle基础教程之通过RMAN复制数据库

RMAN备份策略制定参考内容

RMAN备份学习笔记

Oracle数据库备份加密 RMAN加密

————————————–分割线 ————————————–

本文永久更新链接地址:


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:如何使用 RMAN 异机恢复部分表空间

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址