使用RMAN异地恢复数据库试验(RAC恢复到单实例数

RMAN在实际应用中用到的不多,很多时候一个项目开始设置好备份策略,后续基本上都用不到了,除非数据库出现异常,可以说,RMAN是一个不常用但是却非常重要的技能,但是又非常容易忘记。为了不在关键时刻掉链子,做了一个RMAN异地恢复数据库的试验。

试验环境介绍 

    操作系统   数据库版本   RAC?  
源系统   CentOS 6.3 x64   11.2.0.4   2节点  
目标系统   RedHat 6.4 x64   11.2.0.4   单节点  
Rman备份: 0级数据库全备  

操作步骤

1.将rman备份文件从源库上面拷贝到目标库/dbbackup/full/20150815目录中,做好准备工作

2.设置目标库sid,pfile等;pfile可以通过源系统获取;

[Oracle@test ~]$ export ORACLE_SID=testdb

3.  通过pfile创建spfile,启动实例到nomount状态

[oracle@test ~]$ sqlplus / as sysdba
SQL> create spfile from pfile='/home/oracle/pwss.ora';
SQL> startup nomount
ORACLE 例程已经启动。

4.  连接rman,恢复controlfile

RMAN> restore controlfile from '/dbbackup/full/20150815/CTL_WSSDB_d1qek9nr_1_120150815.bak';
启动 restore 于 2015-09-22 09:32:30
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=133 设备类型=DISK
通道 ORA_DISK_1: 正在还原控制文件
通道 ORA_DISK_1: 还原完成, 用时: 00:00:04
输出文件名=/app/oradata/wssdb/control01.ctl
输出文件名=/app/oradata/wssdb/control02.ctl
完成 restore 于 2015-09-22 09:32:34
RMAN> alter database mount;

5. 使用rman恢复数据文件

因为源系统使用的是ASM存储,但是目标系统是单实例,使用的是本地磁盘作为存储的,数据文件目录不一致,所以我们要使用 set newname for datafiel 子句将数据文件制定新的目录以及文件名,恢复脚本如下:

RMAN> run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
set newname for datafile 1 to '/app/oradata/wssdb/system01.bdf';
set newname for datafile 2 to '/app/oradata/wssdb/sysaux01.bdf';
set newname for datafile 3 to '/app/oradata/wssdb/undotbs1_01.bdf';
set newname for datafile 4 to '/app/oradata/wssdb/undotbs2_01.bdf';
set newname for datafile 5 to '/app/oradata/wssdb/users_01.bdf';
set newname for datafile 6 to '/app/oradata/wssdb/wss_01.bdf';
set newname for datafile 7 to '/app/oradata/wssdb/smicwrps_tablespace_01.bdf';
set newname for datafile 8 to '/app/oradata/wssdb/xm_db_portal.bdf';
set newname for datafile 9 to '/app/oradata/wssdb/xm_db_push.bdf';
set newname for datafile 10 to '/app/oradata/wssdb/xdbts.bdf';
restore database;
switch datafile all;
release channel c1;
release channel c2;
release channel c3;
}

分配的通道: c1
通道 c1: SID=133 设备类型=DISK
分配的通道: c2
通道 c2: SID=10 设备类型=DISK
分配的通道: c3
通道 c3: SID=135 设备类型=DISK
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
启动 restore 于 2015-09-22 09:53:48
通道 c1: 正在开始还原数据文件备份集
通道 c1: 正在指定从备份集还原的数据文件
通道 c1: 将数据文件 00001 还原到 /app/oradata/wssdb/system01.bdf
通道 c1: 将数据文件 00003 还原到 /app/oradata/wssdb/undotbs1_01.bdf
通道 c1: 将数据文件 00005 还原到 /app/oradata/wssdb/users_01.bdf
通道 c1: 将数据文件 00008 还原到 /app/oradata/wssdb/xm_db_portal.bdf
通道 c1: 将数据文件 00010 还原到 /app/oradata/wssdb/xdbts.bdf
通道 c1: 正在读取备份片段 /dbbackup/full/20150815/WSSDB_crqek9mr_1_120150815.bak
通道 c2: 正在开始还原数据文件备份集
通道 c2: 正在指定从备份集还原的数据文件
通道 c2: 将数据文件 00002 还原到 /app/oradata/wssdb/sysaux01.bdf
通道 c2: 将数据文件 00004 还原到 /app/oradata/wssdb/undotbs2_01.bdf
通道 c2: 将数据文件 00006 还原到 /app/oradata/wssdb/wss_01.bdf
通道 c2: 将数据文件 00007 还原到 /app/oradata/wssdb/smicwrps_tablespace_01.bdf
通道 c2: 将数据文件 00009 还原到 /app/oradata/wssdb/xm_db_push.bdf
通道 c2: 正在读取备份片段 /dbbackup/full/20150815/WSSDB_cqqek9mr_1_120150815.bak
通道 c1: 段句柄 = /dbbackup/full/20150815/WSSDB_crqek9mr_1_120150815.bak 标记 = TAG20150815T001003
通道 c1: 已还原备份片段 1
通道 c1: 还原完成, 用时: 00:33:05
通道 c2: 段句柄 = /dbbackup/full/20150815/WSSDB_cqqek9mr_1_120150815.bak 标记 = TAG20150815T001003
通道 c2: 已还原备份片段 1
通道 c2: 还原完成, 用时: 00:34:58
完成 restore 于 2015-09-22 10:28:47
数据文件 1 已转换成数据文件副本
输入数据文件副本 RECID=11 STAMP=891080928 文件名=/app/oradata/wssdb/system01.bdf
数据文件 2 已转换成数据文件副本
输入数据文件副本 RECID=12 STAMP=891080928 文件名=/app/oradata/wssdb/sysaux01.bdf
数据文件 3 已转换成数据文件副本
输入数据文件副本 RECID=13 STAMP=891080928 文件名=/app/oradata/wssdb/undotbs1_01.bdf
数据文件 4 已转换成数据文件副本
输入数据文件副本 RECID=14 STAMP=891080928 文件名=/app/oradata/wssdb/undotbs2_01.bdf
数据文件 5 已转换成数据文件副本
输入数据文件副本 RECID=15 STAMP=891080928 文件名=/app/oradata/wssdb/users_01.bdf
数据文件 6 已转换成数据文件副本
输入数据文件副本 RECID=16 STAMP=891080928 文件名=/app/oradata/wssdb/wss_01.bdf
数据文件 7 已转换成数据文件副本
输入数据文件副本 RECID=17 STAMP=891080928 文件名=/app/oradata/wssdb/smicwrps_tablespace_01.bdf
数据文件 8 已转换成数据文件副本
输入数据文件副本 RECID=18 STAMP=891080928 文件名=/app/oradata/wssdb/xm_db_portal.bdf
数据文件 9 已转换成数据文件副本
输入数据文件副本 RECID=19 STAMP=891080928 文件名=/app/oradata/wssdb/xm_db_push.bdf
数据文件 10 已转换成数据文件副本
输入数据文件副本 RECID=20 STAMP=891080928 文件名=/app/oradata/wssdb/xdbts.bdf
释放的通道: c1
释放的通道: c2
释放的通道: c3

恢复完成,因为控制文件中的在线日志还是原来的ASM路径,我们需要重建控制文件,步骤如下:

添加新的在线日志:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/a52631134ff5abf9d10e3697c6769bba.html