oracle跨平台备份恢复,Rman_异地、跨平台、跨版本的恢复总结及案例

结论:

1.Rman可以跨平台,网上有资料基于ID 413586.1(metalink上有),但是还是少用rman来进行跨平台操作。

2.Rman可以跨版本,但是一般只能从低到高,且要执行catupgrd.sql。不能从高到低,唯一成功的是低版本升级到高版本后备份可以恢复到同样的低版本

跨平台的实例:

Solaris上的9i的DB通过rman备份后恢复到RHEL5.4上的11.2.0.1

跨版本的实例:

RMAN_11.2.0.1异机恢复到11.2.0.4

RMAN_11.2.0.1升级到11.2.0.4的DB异机恢复到11.2.0.1版本的DB

RMAN_11.2.0.1升级到11.2.0.4的DB异机恢复到12.1.0.2

RMAN_备份在异地恢复

A的整库备份在B还原

以下相当于到在一个只安装了oracle软件的B服务器上进行的恢复,B没有任何关于A库的数据,也发现在整个过程中都没有去手动创建B库的在线日志,因为B库在线日志会在alter database open resetlogs的时候自动创建,只要B服务器的在线日志路径和A库一样即可(如果B服务器已经安装了oracle软件并创建了DB,则第五、六步可以合并成一步即目标库根据spfile创建pfile,并修改pfile中的db_name为源库DB名称,并在目标库创建源库datafile、online redo log对应的目录)

1.A库执行backup database format ‘/backup/rman/full_%U.bak’;

在A的/backup/rman会出现两个以full命名的文件,一个是数据库备份,一个参数文件和控制的备份

2.A库再执行alter system archive log current或alter system switch logfile

在A的归档目录下生成刚刚最新的归档日志

以上两步可接变成一步如下

Rman>backup

database format '/u01/app/rman/full%U.bak' plus archivelog format

'/u01/app/rman/arch%U.bak'

3.把A库/backup/rman下的两个文件和刚刚最新的归档日志拷贝到B库一样的目录

4.修改目标库的.bash_profile中ORACLE_SID=源库的sid,并source应用一下

5.在B库执行echo $ORACLE_SID,等于A库sid的情况下再执行

rman target /

rman>startup nomount

rman>restore spfile to pfile

'$ORACLE_HOME目录/dbs/initA的SID.ora' from'/backup/rman/full_09l9esg4_1_1';

6.修改刚刚还原出来的pfile,并根据pfile文件创建诸如dump、archivelog、datafile、online redo log等路径,如B库创建了和A库一样的控制文件路径、数据文件路径、日志文件路径

7.B库shutdown abort再startup nomount

8.B库rman恢复操作

rman>restore controlfile

from'/backup/rman/full_09l9esg4_1_1';

rman>alter database mount;

rman>restore database;

rman>recover database until

sequence主库拷贝过来的那个归档日志的sequence+1

以上如果使用归档日志的备份包需要在recover database之前执行如下两句(需要catalog最后一个归档日志的备份包,为什么需要catalog是因为它在controlfile备份包之后生成的。XX只需要from最大的那个sequence-2就可以了,不需要源库和目标库的archivelog目录一致,只要目标库有archivelog目录就可以了,会自动restore到目标库的archivelog目录)

rman>catalog backuppiece '';

rman>restore archivelog from

sequence XX;

9.B库open resetlogs

Sqlplus>alter database open

resetlogs

心得:

第8步,如果没有了A库最新的归档日志,restore database后直接recover database,会报错说找不到归档日志,所以进行整库备份后,必须手动归档,并把归档日志也拷贝到异地

第8步,万一不小心在mount状态时修改了B的归档路径,导致A库和B库的归档日志路径不一样,则把A库的归档日志拷贝到B库的实际归档路径,即可恢复,不要重新创建一个归档路径和A库一样,再把归档日志拷贝到这个新建的归档路径,一切以B库的archive log list中的路径为准

20150812RMAN异地还原的操作的例子

1.源库A执行如下

Rman>delete

noprompt archivelog until time 'sysdate-1';

Rman>backup

database format '/orabackup/rman_backup/data%U.bak' plus archivel

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值