技术开发 频道

RAC+ASM在单机上恢复的过程

二 准备工作,把备份集拷贝到IBM1下
如下:备份集已经拷贝到IBM1的/oradata目录下
ibm1 ->pwd
/oradata
ibm1 ->cd orabak
ibm1 ->ls -lrt
total 0
drwxr-xr-x 2 oracle oinstall 256 Jun 20 15:12 logbackup
drwxr-xr-x 2 oracle oinstall 256 Jun 20 15:13 rmanspctlback
drwxr-xr-x 2 oracle oinstall 256 Jun 20 16:37 databackup
ibm1 ->cd rman*
ibm1 ->pwd
/oradata/orabak/rmanspctlback
ibm1 ->ls -lrt
total 23104
-rw-r----- 1 oracle oinstall 11829248 Jun 20 15:12 c-3276392049-20080620-01 -- 参数文件,控制文件的备份集
ibm1 ->cd ../databackup
ibm1 ->pwd
/oradata/orabak/databackup
ibm1 ->ls -lrt
total 769264
-rw-r----- 1 oracle oinstall 393863168 Jun 20 16:38 db_CCDB_900_1_20080620 -- 数据文件的备份集
ibm1 ->cd ../logbackup
ibm1 ->pwd
/oradata/orabak/logbackup
ibm1 ->ls -lrt
total 3320
-rw-r----- 1 oracle oinstall 1699328 Jun 20 15:12 log_CCDB_901_1_20080620 -- 备份完数据库后,备份归档日志的备份集

三 操作步骤

1 修改IBM1上的ORACLE的配置文件,只需要修改ORACLE_SID即可。
vi /oracle/.profile oracle_sid=ccdb1

2 进入RMAN,强行启动数据库(会报没有参数文件)后,恢复参数文件。
rman target /
startup nomount
restore spfile from '/oradata/orabak/rmanspctlback/c-3276392049-20080620-01';

3 根据spfile, 恢复出pfile, 编辑pfile, 去掉与rac设置相关的参数, 再将pfile转换成spfile
create pfile from spfile;
shutdown abort;
vi initccdb1.ora -- 去掉与rac设置相关的参数,同时注意参数里指定的各目录是否存在。
create spfile from pfile;

4 使用新创建的spfile 启动数据库,恢复出控制文件。
startup nomount;
restore controlfile from '/oradata/orabak/rmanspctlback/c-3276392049-20080620-01';
alter database mount;

5 由于正式环境使用了ASM,数据文件,在线日志都存在ASM里,而测试环境没有ASM,故需要将文件转换,存放到文件系统下,
进入SQLPLUS, 找出该库的归档日志,重新指定在线日志的路径。
sqlplus / as sysdba
select * from v$logfile;
alter database rename file '+ASMDISK/ccdb/onlinelog/group_3.267.648572919' to '/oradata/ccdb/redo0302.log';
alter database rename file '+ASMDISK/ccdb/onlinelog/group_2.264.648572917' to '/oradata/ccdb/redo0201.log';
alter database rename file '+ASMDISK/ccdb/onlinelog/group_2.265.648572919' to '/oradata/ccdb/redo0202.log';
alter database rename file '+ASMDISK/ccdb/onlinelog/group_1.262.648572915' to '/oradata/ccdb/redo0101.log';
alter database rename file '+ASMDISK/ccdb/onlinelog/group_1.263.648572917' to '/oradata/ccdb/redo0102.log';
alter database rename file '+ASMDISK/ccdb/onlinelog/group_4.270.648573025' to '/oradata/ccdb/redo0401.log';
alter database rename file '+ASMDISK/ccdb/onlinelog/group_4.271.648573025' to '/oradata/ccdb/redo0402.log';
alter database rename file '+ASMDISK/ccdb/onlinelog/group_5.272.648573025' to '/oradata/ccdb/redo0501.log';
alter database rename file '+ASMDISK/ccdb/onlinelog/group_5.273.648573027' to '/oradata/ccdb/redo0502.log';
alter database rename file '+ASMDISK/ccdb/onlinelog/group_6.274.648573027' to '/oradata/ccdb/redo0601.log';
alter database rename file '+ASMDISK/ccdb/onlinelog/group_6.275.648573027' to '/oradata/ccdb/redo0602.log';

6 由于在IBM4上记录的数据库,归档日志的备份集的存放路径与IBM1上的不一样,故,需要说明在IBM1上这些备份集的路径,以便RMAN知晓。
catalog backuppiece '/oradata/orabak/databackup/db_CCDB_900_1_20080620';
catalog backuppiece '/oradata/orabak/logbackup/log_CCDB_901_1_20080620';

7 检查备份集的存在状况,删除多余的备份集信息
crosscheck backup;
delete noprompt expired backup;

8 检查全库恢复时的,需要哪些数据文件备份集,归档日志文件的备份集。
restore database preview summary;

9 找出库的数据文件。
RMAN> report schema;

RMAN-06139: WARNING: control file is not current for REPORT SCHEMA
Report of database schema

List of Permanent Datafiles
===========================
File Size(MB) Tablespace RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1 0 SYSTEM *** +ASMDISK/ccdb/datafile/system.256.648572847
2 0 UNDOTBS1 *** +ASMDISK/ccdb/datafile/undotbs1.258.648572847
3 0 SYSAUX *** +ASMDISK/ccdb/datafile/sysaux.257.648572847
4 0 USERS *** +ASMDISK/ccdb/datafile/users.259.648572847
5 0 UNDOTBS2 *** +ASMDISK/ccdb/datafile/undotbs2.269.648572973
6 0 UNICALL2X *** +ASMDISK/ccdb/datafile/unicall2x.279.648578659
7 0 UNICALL2X_IDX *** +ASMDISK/ccdb/datafile/unicall2x_idx.280.648578725

List of Temporary Files
=======================
File Size(MB) Tablespace Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1 0 TEMP 32767 +ASMDISK/ccdb/tempfile/temp.268.648572939


10 写恢复脚本来恢复库,其中重新指定恢复时,数据文件的存放路径,由ASM到文件系统。
run
{allocate channel d1 type disk;
set newname for datafile 1 to '/oradata/ccdb/system.dbf';
set newname for datafile 2 to '/oradata/ccdb/undotbs1.dbf';
set newname for datafile 3 to '/oradata/ccdb/sysaux.dbf';
set newname for datafile 4 to '/oradata/ccdb/users.dbf';
set newname for datafile 5 to '/oradata/ccdb/undotbs2.dbf';
set newname for datafile 6 to '/oradata/ccdb/unicall2x.dbf';
set newname for datafile 7 to '/oradata/ccdb/unicall2x_idx.dbf';
restore database;
switch datafile all;
release channel d1;
}

13 recover database,注意恢复完成后,系统提示需要的日志文件及SCN好。
recover database;
14 罗列出归档日志的备份集,和上面的RECOVER DATABASE 信息作比较,以确定是否已经用完备份集里的归档日志。
list backup of archivelog all;

15 alter database open resetlogs;

0
相关文章