RMAN异机恢复

环境介绍:

      备份是:11.2.0.1 rac中的rman备份

      目标:利用rac的rman备份创建单实例数据库,用于测试

准备条件:
  1、在单机创建数据库,要求数据库名和原库名一样,最后可以使用nid进行修改dbid和dbname
  2、默认控制文件不在RMAN备份集中,需要从RMAN备份日志中去到具体存放位置
  3、只有全库不行,还需要归档日志备份
第一步:创建数据库dbca
第二步:启动数据库到mount状态下

startup nomount;
第三步:根据RMAN日志查找spfile文件位置(该文件和控制文件备份在一起)
restore spfile to pfile '/u01/app/oracle/11.2.0/db_1/dbs/initarchboss.ora' from '/rmanback/s_873899508.281.873899517';
第四步:修改初始化参数,只保留如下内容
 *.audit_file_dest='/u01/app/oracle/admin/archboss/adump'
 *.audit_trail='db'
 *.compatible='11.2.0.0.0'
 *.control_files='/u01/app/oracle/oradata/archboss/control01.dbf','/u01/app/oracle/oradata/archboss/control02.dbf'
 *.db_block_size=8192
 *.db_domain=''
 *.db_files=500
 *.db_name='archboss'
 *.diagnostic_dest='/u01/app/oracle'
 *.dispatchers='(PROTOCOL=TCP) (SERVICE=archbossXDB)'
 *.memory_target=817889280
 *.open_cursors=300
 *.processes=150
 *.remote_login_passwordfile='exclusive'
 *.undo_tablespace='UNDOTBS1'
 *.log_archive_dest_1='LOCATION=/u01/arch'  --添加归档目录
 *.log_archive_format='%t_%s_%r.dbf'              --添加归档目录格式

第五步:生成spfile文件
shutdown immediate;
create spfile from pfile;
startup nomount
第六步:恢复控制文件
rman target /
restore controlfile from '/rmanback/s_873899508.281.873899517'
mount database;
第七步:将备份集注册进控制文件里
catalog start with '/rmanback/';
第八步:确认数据文件路径(源库执行)
set pagesize 9999
col NAME for a65
select file#,name from v$datafile;

  1 +DATA/devdb/datafile/system.256.835141391
  2 +DATA/devdb/datafile/sysaux.257.835141395
  3 +DATA/devdb/datafile/undotbs1.258.835141395
  4 +DATA/devdb/datafile/users.259.835141397
  5 +DATA/devdb/datafile/undotbs2.264.835142223

 

RUN {
SET NEWNAME FOR DATAFILE 1 to '/u01/app/oracle/oradata/archboss/system01.dbf';
SET NEWNAME FOR DATAFILE 2 to '/u01/app/oracle/oradata/archboss/sysaux01.dbf';
SET NEWNAME FOR DATAFILE 3 to '/u01/app/oracle/oradata/archboss/undotbs1.dbf';
SET NEWNAME FOR DATAFILE 4 to '/u01/app/oracle/oradata/archboss/users01.dbf';
SET NEWNAME FOR DATAFILE 5 to '/u01/app/oracle/oradata/archboss/undotbs2.dbf'; 
RESTORE DATABASE;
SWITCH DATAFILE ALL;  --将数据文件信息更新到控制文件

}

--注意,tempfile需要后期单独创建,此处不会处理tempfile

第九步:修改联机日志文件的路径
col MEMBER for a65
select member from v$logfile

alter database rename file '+DATA/devdb/onlinelog/group_2.270.848066901' to '/u01/app/oracle/oradata/archboss/redo2_1.log';
alter database rename file '+FLASH/devdb/onlinelog/group_2.270.848066901' to '/u01/app/oracle/oradata/archboss/redo2_2.log';
alter database rename file '+DATA/devdb/onlinelog/group_1.261.835141813' to '/u01/app/oracle/oradata/archboss/redo1_1.log';
alter database rename file '+FLASH/devdb/onlinelog/group_1.257.835141821' to '/u01/app/oracle/oradata/archboss/redo1_2.log';
alter database rename file '+DATA/devdb/onlinelog/group_3.265.835142349' to '/u01/app/oracle/oradata/archboss/redo3_1.log';
alter database rename file '+FLASH/devdb/onlinelog/group_3.259.835142355' to '/u01/app/oracle/oradata/archboss/redo3_2.log';
alter database rename file '+DATA/devdb/onlinelog/group_4.266.835142359' to '/u01/app/oracle/oradata/archboss/redo4_1.log';
alter database rename file '+FLASH/devdb/onlinelog/group_4.260.835142367' to '/u01/app/oracle/oradata/archboss/redo4_2.log';
alter database rename file '+DATA/devdb/onlinelog/group_5.268.848057681' to '/u01/app/oracle/oradata/archboss/redo5_1.log';
alter database rename file '+FLASH/devdb/onlinelog/group_5.261.848057683' to '/u01/app/oracle/oradata/archboss/redo5_2.log';
alter database rename file '+DATA/devdb/onlinelog/group_6.269.848066571' to '/u01/app/oracle/oradata/archboss/redo6_1.log';
alter database rename file '+FLASH/devdb/onlinelog/group_6.265.848066573' to '/u01/app/oracle/oradata/archboss/redo6_2.log';
alter database rename file '+DATA/devdb/onlinelog/group_7.271.848070189' to '/u01/app/oracle/oradata/archboss/redo7_1.log';
alter database rename file '+FLASH/devdb/onlinelog/group_7.275.848070191' to '/u01/app/oracle/oradata/archboss/redo7_2.log';
alter database rename file '+DATA/devdb/onlinelog/group_8.272.848070209' to '/u01/app/oracle/oradata/archboss/redo8_1.log';
alter database rename file '+FLASH/devdb/onlinelog/group_8.276.848070211' to '/u01/app/oracle/oradata/archboss/redo8_2.log';

联机日志文件修改之后查看
SQL> set pagesize 9999
SQL> select member from v$logfile;

第十步:恢复数据库
rman target /
recover database;

第十一步:resetlogs打开数据库(此问题是因为没有归档日志造成的,需要提供归档日志)
ORA-01152: file 2 was not restored from a sufficiently old backup
ORA-01110: data file 2: '/u01/app/oracle/oradata/archboss/sysaux01.dbf'

RMAN> alter database open resetlogs;

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of alter db command at 03/09/2015 18:05:44
ORA-38856: cannot mark instance UNNAMED_INSTANCE_2 (redo thread 2) as enabled


退出RMAN环境,
sqlplus / as sysdba
ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 10 '/u01/app/oracle/oradata/archboss/redo_t2_log3.log' SIZE 10M REUSE,GROUP 11 '/u01/app/oracle/oradata/archboss/redo_t2_log4.log' SIZE 10M REUSE;
alter database open resetlogs;
--禁用thread 2
alter database disable thread 2;

第十二步:创建临时表空间
create temporary tablespace temp01 tempfile '/u01/app/oracle/oradata/temp01.dbf' size 10M;

第十三步:修改DBID和DBNAME

nid 命令到执行的最后会关闭数据库,如果有session 连接,就会阻止这个操作,修改dbid就会被挂死。如果中断这个操作。修改就会失败,数据库就不能mount。需要恢复。

注意一点,修改DB_NAME 之前,要将spfile 创建成pfile,因为修改dbname之后,原来的参数文件就没用了。所以要保证最新的参数。 还有修改DB_NAME的值为最新值。 修改完之后,然后用这个新参数启动DB,另外还需注意,nid命令到执行的最后会关闭数据库,如果有session连接,就会阻止这个操作,修改dbid就会被挂死,如果中断这个操作,修改就会失败,数据库就不能mount,需要恢复,因此修改前要关闭所有连接会话

nid target=sys/system dbname=boss  --修改DBID和DBNAME

nid target=sys/system  --只修改DBID

分享:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值