之前整理的RMAN有关还原的文章:
RMAN系列(五)---- RMAN还原与恢复
http://blog.csdn.net/xujinyang/article/details/6838045
RMAN备份与恢复实例
http://blog.csdn.net/xujinyang/article/details/6822620
Oracle Rman跨resetlogs版本恢复
http://blog.csdn.net/xujinyang/article/details/6830337
RAC下的RMAN讲究的是备份和还原的策略要一致。备份策略的不同,会导致备份结果的分步不同,进而影响恢复的策略和步骤。一般情况下,恢复策略和备份策略必须是对应的。如果备份策略进行了修改,那么恢复也应该采用相同的策略。之前我们的RMAN备份参考:
RAC之RMAN备份
http://blog.csdn.net/xujinyang/article/details/6837226
这里面有2个注意事项:
1.执行恢复的节点要能看到所有节点的归档文件。这个在RAC备份那篇里已经讲了方法,就是把归档文件传送到其他节点,这样就能够看到所有节点的归档文件了。
2.备份集的存放问题。如果我们放在共享设备上,那么节点可以访问所有的备份文件,那么就可以直接进行恢复操作。如果不是放在共享设备,可以通过NFS mount来挂载,或者设置2个通道。分别指向多个实例。
示例:
1.1先停止数据库
[oracle@rac1 bin]$srvctl stop db -d orcl
[oracle@rac1 bin]$crs_stat -t
NameTypeTargetStateHost
------------------------------------------------------------
ora.orcl.dbapplicationOFFLINEOFFLINE
ora....oltp.cs applicationOFFLINEOFFLINE
ora....cl1.srv applicationOFFLINEOFFLINE
ora....cl2.srv applicationOFFLINEOFFLINE
ora....l1.inst applicationOFFLINEOFFLINE
ora....l2.inst applicationOFFLINEOFFLINE
ora....SM1.asm applicationONLINEONLINErac1
ora....C1.lsnr applicationONLINEONLINErac1
ora.rac1.gsdapplicationONLINEONLINErac1
ora.rac1.onsapplicationONLINEONLINErac1
ora.rac1.vipapplicationONLINEONLINErac1
ora....SM2.asm applicationONLINEONLINErac2
ora....C2.lsnr applicationONLINEONLINErac2
ora.rac2.gsdapplicationONLINEONLINErac2
ora.rac2.onsapplicationONLINEONLINErac2
ora.rac2.vipapplicationONLINEONLINErac2
1.2将节点启动到mount状态:
备份集存在在2个节点的情况(2个节点的RAC),在这种情况下,需要分配2个通道分别连接对应的节点。每个节点都需要启动到mount状态。因为每个节点都有备份文件,所以在每个节点都需要执行restore,如果没有启动的话,就会报错,对于备份集存放在共享设备的就不用这么麻烦。
[oracle@rac1 bin]$export ORACLE_SID=orcl1
[oracle@rac1 bin]$rman target /
Recovery Manager: Release 10.2.0.1.0 - Production on Mon Sep 27 02:56:55 2010
Copyright (c) 1982, 2005, Oracle.All rights reserved.
connected to target database (not started)
RMAN>startup mount;
Oracle instance started
database mounted
Total System Global Area180355072 bytes
Fixed Size1218388 bytes
Variable Size100665516 bytes
Database Buffers75497472 bytes
Redo Buffers2973696 bytes
[oracle@rac2 bin]$ export ORACLE_SID=orcl2
[oracle@rac2 bin]$ rman target /
Recovery Manager: Release 10.2.0.1.0 - Production on Mon Sep 27 02:57:44 2010
Copyright (c) 1982, 2005, Oracle.All rights reserved.
connected to target database (not started)
RMAN> startup mount;
Oracle instance started
database mounted
Total System Global Area180355072 bytes
Fixed Size1218388 bytes
Variable Size83888300 bytes
Database Buffers92274688 bytes
Redo Buffers2973696 bytes
1.3完全恢复
在任意一个节点上执行:
RMAN>RUN {
allocate channel c1 device type disk connect'sys/oracle@orcl1';
allocate channel c2 device type disk connect'sys/oracle@orcl2';
restore database;
recover database;
}
2> 3> 4> 5> 6>
using target database control file instead of recovery catalog
allocated channel: c1
channel c1: sid=146 instance=orcl1 devtype=DISK
allocated channel: c2
channel c2: sid=146 instance=orcl2 devtype=DISK
Starting restore at 27-SEP-10
skipping datafile 2; already restored to file +DATA/orcl/datafile/undotbs1.278.730181053
skipping datafile 3; already restored to file +DATA/orcl/datafile/sysaux.277.730181053
skipping datafile 5; already restored to file +DATA/orcl/datafile/undotbs2.284.730181347
skipping datafile 1; already restored to file +DATA/orcl/datafile/system.276.730181051
skipping datafile 4; already restored to file +DATA/orcl/datafile/users.279.730181053
skipping datafile 7; already restored to file +DATA/orcl/datafile/anhuianqing.dbf
Finished restore at 27-SEP-10
Starting recover at 27-SEP-10
starting media recovery
media recovery complete, elapsed time: 00:00:04
Finished recover at 27-SEP-10
released channel: c1
released channel: c2
RMAN> sql 'alter database open';
sql statement: alter database open
1.4不完全恢复
1.4.1基于时间点的恢复
RMAN>RUN {
allocate channel c1 device type disk connect'sys/oracle@orcl1';
allocate channel c2 device type disk connect'sys/oracle@orcl2';
set until time "to_date('2010/9/27 03:30:00','yyyy/mm/dd hh24:mi:ss')";
restore database;
recover database;
}
2>3> 4> 5> 6> 7> 8>
allocated channel: c1
channel c1: sid=143 instance=orcl1 devtype=DISK
allocated channel: c2
channel c2: sid=146 instance=orcl2 devtype=DISK
executing command: SET until clause
Starting restore at 27-SEP-10
channel c1: starting datafile backupset restore
channel c1: specifying datafile(s) to restore from backup set
restoring datafile 00001 to +DATA/orcl/datafile/system.276.730181051
restoring datafile 00004 to +DATA/orcl/datafile/users.279.730181053
restoring datafile 00007 to +DATA/orcl/datafile/anhuianqing.dbf
channel c1: reading from backup piece /u01/backup/orcl_2blotmnp_1_1_20100927
channel c2: starting datafile backupset restore--这里使用了2个通道,因为这个测试的备份集是放在2个节点的。
channel c2: specifying datafile(s) to restore from backup set
restoring datafile 00002 to +DATA/orcl/datafile/undotbs1.278.730181053
restoring datafile 00003 to +DATA/orcl/datafile/sysaux.277.730181053
restoring datafile 00005 to +DATA/orcl/datafile/undotbs2.284.730181347
channel c2: reading from backup piece /u01/backup/orcl_2clotmno_1_1_20100927
channel c2: restored backup piece 1
piece handle=/u01/backup/orcl_2clotmno_1_1_20100927 tag=ORCL_HOT_DB_BK
channel c2: restore complete, elapsed time: 00:01:21
channel c1: restored backup piece 1
piece handle=/u01/backup/orcl_2blotmnp_1_1_20100927 tag=ORCL_HOT_DB_BK
channel c1: restore complete, elapsed time: 00:02:48
Finished restore at 27-SEP-10
Starting recover at 27-SEP-10
starting media recovery
media recovery complete, elapsed time: 00:00:03
Finished recover at 27-SEP-10
released channel: c1
released channel: c2
RMAN>
恢复完成之后,在两个节点执行:
alter database open resetlogs;
打开数据即可。
1.4.2基于SCN的恢复
当前SCN查看方法:
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
1118216
RMAN>RUN {
allocate channel c1 device type disk connect'sys/oracle@orcl1';
allocate channel c2 device type disk connect'sys/oracle@orcl2';
restore database until scn 1118215 ;
recover database until scn 1118215 ;
}
2> 3> 4> 5> 6>
using target database control file instead of recovery catalog--非catalog模式,这种模式备份控制文件非常重要
allocated channel: c1
channel c1: sid=142 instance=orcl1 devtype=DISK
allocated channel: c2
channel c2: sid=151 instance=orcl2 devtype=DISK
Starting restore at 27-SEP-10
channel c1: starting datafile backupset restore
channel c1: specifying datafile(s) to restore from backup set
restoring datafile 00001 to +DATA/orcl/datafile/system.276.730181051
restoring datafile 00004 to +DATA/orcl/datafile/users.279.730181053
restoring datafile 00007 to +DATA/orcl/datafile/anhuianqing.dbf
channel c1: reading from backup piece /u01/backup/orcl_2blotmnp_1_1_20100927
channel c2: starting datafile backupset restore
channel c2: specifying datafile(s) to restore from backup set
restoring datafile 00002 to +DATA/orcl/datafile/undotbs1.278.730181053
restoring datafile 00003 to +DATA/orcl/datafile/sysaux.277.730181053
restoring datafile 00005 to +DATA/orcl/datafile/undotbs2.284.730181347
channel c2: reading from backup piece /u01/backup/orcl_2clotmno_1_1_20100927
channel c2: restored backup piece 1
piece handle=/u01/backup/orcl_2clotmno_1_1_20100927 tag=ORCL_HOT_DB_BK
channel c2: restore complete, elapsed time: 00:03:58
channel c1: restored backup piece 1
piece handle=/u01/backup/orcl_2blotmnp_1_1_20100927 tag=ORCL_HOT_DB_BK
channel c1: restore complete, elapsed time: 00:05:47
Finished restore at 27-SEP-10
Starting recover at 27-SEP-10
starting media recovery
archive log thread 1 sequence 44 is already on disk as file /u02/rac1_arch/1_44_730181171.dbf
archive log thread 2 sequence 38 is already on disk as file /u02/rac1_arch/2_38_730181171.dbf
archive log thread 1 sequence 1 is already on disk as file /u02/rac1_arch/1_1_730784806.dbf
archive log thread 2 sequence 1 is already on disk as file /u02/rac2_arch/2_1_730784806.dbf
archive log filename=/u02/rac1_arch/1_44_730181171.dbf thread=1 sequence=44
archive log filename=/u02/rac1_arch/2_38_730181171.dbf thread=2 sequence=38
archive log filename=/u02/rac2_arch/2_1_730784806.dbf thread=2 sequence=1
media recovery complete, elapsed time: 00:00:09
Finished recover at 27-SEP-10
released channel: c1
released channel: c2
恢复结束,用alter database open resetlogs打开数据库。
小结:
以上都是简单的测试,具体情况还是要具体对待。经验积累的多了,就知道怎么处理了。总之,备份重于一切。有了备份,才有恢复的可能。
------------------------------------------------------------------------------
分享到:
相关推荐
原创实战Oracle RAC rman恢复
Oracle_Rac环境Rman备份与恢复.doc
1)拷贝源数据库的备份... 然后根据备份恢复pfile文件(此文档使用此方法)。 4)恢复备份中的controlfile到目标库,并使库至mount状态。 5)恢复数据,更改数据文件,临时文件,日志文件的路径。 6)恢复数据库。
Oracle RAC环境,归档放到本地和放到ASM存储,备份规则是不同的。
最详细的单机坏境恢复rac备份集,只要按步骤一步一步操作,绝对成功
1、oracle 10g环境为RAC,两个节点; 2、备份方式为rman备份; 3、恢复至oracle 10g单机环境; 4、文档非常全面细致,包含所需要的每一步命令; 5、按照文档进行操作可以达到恢复的目的。
rac恢复到单机rac恢复到单机rac恢复到单机rac恢复到单机rac恢复到单机rac恢复到单机
Oracle 11g R2 Rman备份与恢复_刘耀龙的博客-CSDN博客_rman备份
ORACLE RAC恢复备份恢复测试-全套过程含脚本 veritas RMAN
Oracle 10g RAC生产数据库RMAN方式恢复到异地单机数据库全程记录
[三思笔记]RMAN管理ORACLE_RAC数据库的备份与恢复
Oracle 11.2.0.3 单实例 迁移到 11gR2 RAC 案例-- 使用RMAN 异机恢复 注:文档打开密码见压缩包注释
说明:本文为Oracle RAC集群转单实例/RMAN异机恢复/RMAN迁移/RMAN备份恢复操作概要方便用户查阅 温馨提示:如果您发现本文哪里写的有问题或者有更好的写法请留言或私信我进行修改优化 步骤 –全库备份(最好停止业务...
本文主要描述Oracle DB 在使用rman进行恢复时,如何利用rman注册备份集的方式达到主库和目标库数据一致的目的。当然Oracle数据库的话使用DG或ADG技术、或者rman的duplicate技术都是非常好的选择。
RMAN管理ORACLE_RAC数据库的备份与恢复
oracle 数据库rman大家都懂的如何在异机进行恢复完整珍藏版手册,分项给大家多多打赏。
超经典 RMAN备份恢复--RAC环境数据库的备份
大牛传授Oracle RAC跨版本恢复到单实例秘笈
Oracle 11.2.0.3 单实例 迁移到 11gR2 RAC 案例-- 使用RMAN 异机恢复
超经典 RMAN备份恢复——RAC环境数据库的备份(八)