oracle单节点和多节点,恢复-恢复多节点RAC至单节点

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/,如需转载,请注明出处,否则将追究法律责任。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值