RMAN异机恢复

Posted ylink-knowledge

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RMAN异机恢复相关的知识,希望对你有一定的参考价值。

一、实验场景

主机A

OS:SUSE Linux Enterprise Server 11 SP3  (x86_64)

IP:192.168.1.100

数据库:oracle11.2.0.1 ORACLE_SID=orcl

主机B

OSRed Hat Enterprise Linux Server release 6.5 (Santiago)

IP:192.168.1.124

数据库:oracle11.2.0.3 

ORACLE_SID=fxcx

二、恢复过程

1.rman备份

备份参数文件

     RMAN> BACKUP SPFILE FORMAT ‘/home/oracle/rman_backup/tc/orcl_spfile_%U.bak‘; 

备份控制文件

RMAN> BACKUP CURRENT CONTROLFILE FORMAT ‘/home/oracle/rman_backup/tc/ctl_%d_%T_%s_%p.bak‘;

备份数据文件和归档日志文件

     RMAN> backup database format ‘/backup/tc/dbfull_%d_%u_%s.bak‘ plus archivelog format ‘/backup/tc/archfull_%d_%u_%s.bak‘;

2.将备份文件cpB/hom2018-11-05e/oracle/rman_backup/tc/,如果没有新建并修改权限

3.rman恢复

B机启动到nomount状态

RMAN> startup nomount;

恢复参数文件

RMAN> restore spfile from ‘/home/oracle/rman_backup/tc/orcl_spfile_1tt88a1g_1_1.bak‘; 

注意:恢复时根据提示创建对应新的控制文件目录、归档日志文件目录等

恢复成功后切换至mount状态

RMAN> alter database mount

恢复控制文件

RMAN> restore controlfile from ‘/home/oracle/rman_backup/tc/ctl_ORCL_20180717_62_1.bak‘;

恢复数据文件

将数据备份集导入控制文件,此处适用于异机还原时备份集没有在默认位置的场景。

RMAN> catalog start with ‘/home/oracle/backup/‘;

 

还原数据文件

RMAN> restore database;

RMAN> recover database; 

Starting recover at 28-MAY-15

using channel ORA_DISK_1

starting media recovery

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of recover command at 05/28/2015 17:07:45

RMAN-06053: unable to perform media recovery because of missing log

RMAN-06025: no backup of archived log for thread 1 with sequence 12 and starting SCN of 1083172 found to restore

//这里报日志缺少,实际上是备份的数据库文件后,没有备份归档日志,归档日志部分丢失

开始不完全恢复

SQL> recover database using backup controlfile until cancel;

SQL> alter database open resetlogs;

ORA-01092: ORACLE instance terminated. Disconnection forced

ORA-00704: bootstrap process failure

ORA-39700: database must be opened with UPGRADE option

 

由于此次异机恢复数据库版本不一致

因此需要通过upgrade的方式打开数据库

解决方法:通过upgrade的方式打开数据库

SQL> startup mount;

SQL> alter database open upgrade;

SQL> select status from v$Instance;

STATUS

------------------------------------

OPEN MIGRATE

SQL> @$ORACLE_HOME/rdbms/admin/catupgrd.sql;

原理:当数据库版本升级的时候,数据库内部的基表进行了变更,数据字典也需要进行相应的更

新,运行catupgrd.sql(30分钟)会进行相应对象更新;

执行完成后启动数据库即可

SQL>startup

以上是关于RMAN异机恢复的主要内容,如果未能解决你的问题,请参考以下文章

rman恢复方案和oracle异机恢复

Oracle RMAN 异机恢复一例

RMAN备份策略与异机恢复一例

RMAN备份策略与异机恢复一例

rman备份与异机恢复

RMAN异机恢复