pfile模板
*.compatible='11.2.0.4.0'
*.db_block_size=8192
*.db_name='rmsdb'
*.log_archive_dest_1='location=/home/oracle/app/arch'
*.db_file_name_convert=('+DATA/rmsdb/datafile','/home/oracle/app/oradata')
*.log_file_name_convert=('+DATA/rmsdb/onlinelog','/home/oracle/app/logfile')
第一步,恢复pfile,注意chown和chmod,将无用参数删除,加上name_convert
sql>startup nomount pfile='/install/rmsdb/init.ora';
第二步,恢复控制文件
rman>restore controlfile from '/home/backup/20150608/RMSDB_20150608_1370_1_cONTROL';
第三步,恢复到mount状态
alter database mount;
第四步,查看logfile的名称,名称奇怪的一定不用
select group#,member from v$logfile;
第四步,查看数据文件和临时文件
SQL> select file#,name from v$datafile;
FILE# NAME
--------- --------
1 +DATA/rmsdb/datafile/system.256.878159043
2 +DATA/rmsdb/datafile/sysaux.257.878159043
3 +DATA/rmsdb/datafile/undotbs1.258.878159043
4 +DATA/rmsdb/datafile/users.259.878159043
5 +DATA/rmsdb/datafile/undotbs2.264.878159251
6 +DATA/rmsdb/datafile/rmsdata
7 +DATA/rmsdb/datafile/rmsindex
SQL> select file#,name from v$tempfile;
FILE# NAME
---------- ------------
1 +DATA/rmsdb/tempfile/temp.263.878159141
2 +DATA/rmsdb/tempfile/temp02.dbf
第五步,将备份文件转移到相同源目录的地方
rman>crosscheck backupset
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/home/backup/20150609/RMSDB_20150609_1596_1_ARcHIVE RECID=1576 STAMP=881947648
说明备份指向/home/backup/20150609
第六步,执行脚本
run
{
set newname for datafile 1 to"/home/oracle/app/oradata/SYSTEM.DBF";
set newname for datafile 2 to"/home/oracle/app/oradata/SYSAUX.DBF";
set newname for datafile 3 to"/home/oracle/app/oradata/UNDOTBS.DBF";
set newname for datafile 4 to"/home/oracle/app/oradata/USERS.DBF";
set newname for datafile 5 to"/home/oracle/app/oradata/undotbs.DBF";
set newname for datafile 6 to"/home/oracle/app/oradata/rmsdata.DBF";
set newname for datafile 7 to"/home/oracle/app/oradata/rmsindex.DBF";
set newname for tempfile 1 to "/home/oracle/app/oradata/temp1.DBF";
set newname for tempfile 2 to "/home/oracle/app/oradata/temp2.DBF";
restore database;
switch datafile all;
switch tempfile all;
}
第七步,确定sequence
select max(sequence#),thread# from gv$archived_log group by thread#;
recover database using backup controlfile until cancel
alter database open resetlogs;
第八步,将缺失的archivelog从asm里拿回来
grid>asmcmd
cd FLASH/ARCH
cp 1_13140_878159131.dbf /home/20150612
cp 1_13141_878159131.dbf /home/20150612
cp 1_13142_878159131.dbf /home/20150612
cp 1_13143_878159131.dbf /home/20150612
cp 1_13144_878159131.dbf /home/20150612
cp 1_13145_878159131.dbf /home/20150612
cp 1_13146_878159131.dbf /home/20150612
cp 1_13147_878159131.dbf /home/20150612
cp 1_13148_878159131.dbf /home/20150612
cp 1_13149_878159131.dbf /home/20150612
cp 2_28060_878159131.dbf /home/20150612
cp 2_28061_878159131.dbf /home/20150612
cp 2_28062_878159131.dbf /home/20150612
cp 2_28063_878159131.dbf /home/20150612
cp 2_28064_878159131.dbf /home/20150612
cp 2_28065_878159131.dbf /home/20150612
cp 2_28066_878159131.dbf /home/20150612
cp 2_28067_878159131.dbf /home/20150612
cp 2_28068_878159131.dbf /home/20150612
cp 2_28069_878159131.dbf /home/20150612
cp 2_26892_878159131.dbf /home/20150612
cp 1_12637_878159131.dbf /home/20150612
查看logfile的名称
select group#,member from v$logfile;
修改错误名称
重命名logfile的方法
alter database rename file '+DATA/rmsdb/onlinelog/group_2.262.878159133' to '/home/oracle/app/oradata/log22.log';
alter database rename file '+FLASH/rmsdb/onlinelog/group_2.258.878159133' to '/home/oracle/app/oradata/log21.log';
alter database rename file '+DATA/rmsdb/onlinelog/group_1.261.878159131' to '/home/oracle/app/oradata/log12.log';
alter database rename file '+FLASH/rmsdb/onlinelog/group_1.257.878159131' to '/home/oracle/app/oradata/log11.log';
alter database rename file '+DATA/rmsdb/onlinelog/group_3.265.878159353' to '/home/oracle/app/oradata/log32.log';
alter database rename file '+FLASH/rmsdb/onlinelog/group_3.259.878159353' to '/home/oracle/app/oradata/log31.log';
alter database rename file '+DATA/rmsdb/onlinelog/group_4.266.878159353' to '/home/oracle/app/oradata/log42.log';
alter database rename file '+FLASH/rmsdb/onlinelog/group_4.260.878159355' to '/home/oracle/app/oradata/log41.log';
alter database rename file '+FLASH/rmsdb/onlinelog/redo51' to '/home/oracle/app/oradata/log51.log';
alter database rename file '+DATA/rmsdb/onlinelog/redo52' to '/home/oracle/app/oradata/log52.log';
alter database rename file '+FLASH/rmsdb/onlinelog/redo61' to '/home/oracle/app/oradata/log61.log';
alter database rename file '+DATA/rmsdb/onlinelog/redo62' to '/home/oracle/app/oradata/log62.log';
alter database rename file '+FLASH/rmsdb/onlinelog/redo71' to '/home/oracle/app/oradata/log71.log';
alter database rename file '+DATA/rmsdb/onlinelog/redo72' to '/home/oracle/app/oradata/log72.log';
alter database rename file '+FLASH/rmsdb/onlinelog/redo81' to '/home/oracle/app/oradata/log81.log';
alter database rename file '+DATA/rmsdb/onlinelog/redo82' to '/home/oracle/app/oradata/log82.log';
删除多余logfile
alter database clear logfile group 1;
alter database drop logfile group 1 ;
恢复archivelog文件
run{
allocate channel t1 type disk;
set archivelog destination to '/home/oracle/app/arch';
restore archivelog from sequence 2345 thread 1 until sequence 2350 thread 1; }
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21302630/viewspace-1696816/,如需转载,请注明出处,否则将追究法律责任。