欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ORACLE10G非归档模式下RMAN异机迁库

程序员文章站 2022-04-14 16:44:34
环境信息: ||源库|目标库| |: |: |: | |操作系统|WIN7|WIN SVR 2012 R2| |IP|x.x.x.216|x.x.x.112| |数据库版本|10.2.0.4.0 64bi|10.2.0.4.0 64bi| |存储方式|单实例|单实例| |ORACLE_HOME|D: ......

ORACLE10G非归档模式下RMAN异机迁库

环境信息:

源库 目标库
操作系统 win7 win svr 2012 r2
ip x.x.x.216 x.x.x.112
数据库版本 10.2.0.4.0 - 64bi 10.2.0.4.0 - 64bi
存储方式 单实例 单实例
oracle_home d:\oracle\product\10.2.0\db_1 d:\oracle\product\10.2.0\db_1
oracle_sid orcl orcl

rman恢复思路步骤:

  • 初始化数据库,安装相同环境;
  • 恢复参数文件;
  • 恢复控制文件;
  • 启动数据库到mount状态,利用控制文件进行数据恢复;
  • restore database;
  • alter database open ressetlogs;
  • 验证结果

    具体恢复步骤:

  1. 在源库上登录rman控制台并且进行切换日志组,触发检查点,关闭数据库,重启动数据库至mount模式。
rman target /
sql'alter system switch logfile';
sql'alter system checkpoint';
shutdown immediate;
startup mount;

ORACLE10G非归档模式下RMAN异机迁库

  1. 另起1个命令窗口,登录sqlplus,查询dbid并且记录下该值后关闭该命令窗口。
sqlplus / as sysdba
select dbid from v$database;

ORACLE10G非归档模式下RMAN异机迁库

  1. 对源库进行全备份,并且记录该备份路径。
run{
    allocate channel d1 type disk;  
    allocate channel d2 type disk;
    backup as compressed backupset database;
    release channel d1;
    release channel d2;
    report obsolete;  
    crosscheck backup; 
    delete noprompt expired backup; 
   delete noprompt obsolete; 
}

ORACLE10G非归档模式下RMAN异机迁库

  1. 对源库进行参数文件、控制文件的备份,并且记录该备份路径。
backup spfile;
backup current controlfile;

ORACLE10G非归档模式下RMAN异机迁库

  1. 在目标系统中安装相同版本的oracle数据库,并且将db_home与db_sid设置与源库中一样。
    ORACLE10G非归档模式下RMAN异机迁库
  2. 安装完毕后,将上述所备份的全库备份文件,参数文件备份,控制文件备份拷贝至目标库中相同的系统路径中
  3. 在目标库中d:\oracle\product\10.2.0\db_1\database新建一个空白文件,文件名称为fakespfileorcl.ora,并且将下方内容复制进文件中
db_name=orcl
java_pool_size=4194304
large_pool_size=4194304
shared_pool_size=96468992
  1. 如果目标库中未shutdown则先shutdown,并且以新建的参数文件进行nomount启动数据库
startup pfile='d:\oracle\product\10.2.0\db_1\database\fakespfileorcl.ora' nomount;

ORACLE10G非归档模式下RMAN异机迁库

  1. 在rman下,执行命令 set dbid=1526707455(源库dbid);
set dbid=1526707455;

ORACLE10G非归档模式下RMAN异机迁库

  1. 在目标库中进行参数文件恢复
restore spfile from 'd:\oracle\product\10.2.0\flash_recovery_area\orcl\backupset\2019_01_30\o1_mf_nnsnf_tag20190130t171134_g52tl81y_.bkp';

ORACLE10G非归档模式下RMAN异机迁库

  1. 关闭数据库并且以还原后的参数文件进行nomount启动
shutdown immediate;
startup nomount;

ORACLE10G非归档模式下RMAN异机迁库

  1. 在目标库中进行控制文件恢复
restore controlfile from 'd:\oracle\product\10.2.0\flash_recovery_area\orcl\backupset\2019_01_30\o1_mf_ncnnf_tag20190130t171148_g52tlns2_.bkp';

ORACLE10G非归档模式下RMAN异机迁库

  1. 关闭数据库并且以mount启动
shutdown immediate;
startup mount;
  1. (可选操作)修改控制文件中记录的数据文件路径(如果源系统中存在数据库文件在f盘而目标系统不存在f盘则有必要进行此步操作),并且启动恢复
    (或者使用windows虚拟盘符)
    !请确保目标系统中存在数据文件存放的路径文件夹!
report schema;

ORACLE10G非归档模式下RMAN异机迁库

run{
    set newname for datafile 8 to 'd:\oracledata1\info_lob';
    restore database;             
    switch datafile all;          
}

ORACLE10G非归档模式下RMAN异机迁库

  • 此时数据库恢复完成
  1. 如果不需要修改路径则直接restore database;即可
    !请确保目标系统中存在数据文件存放的路径文件夹!
  2. 清除重做日志打开数据库
alter database open resetlogs;
  1. 验证数据库(验证源数据库中的数据是否到目标数据库中)
    ORACLE10G非归档模式下RMAN异机迁库
  2. 结束

ps:

  1. 其他参考地址:



    https://docs.oracle.com/cd/b19306_01/backup.102/b14192/recov004.htm#sthref588
  2. win系统迁移linux与上述步骤相似,不过需要在参数文件还原后重新修改控制文件的具体路径
  3. 监控执行的进度
select sid,serial# ,context,sofar,totalwork,round(sofar/totalwork*100,2) "_%" from v$session_longops where opname like 'rman%' and sofar<>totalwork and totalwork<>0;