日期:2014-05-16  浏览次数:20465 次

oracle10G的异机恢复实验

本次异机恢复测试实验室基于centos6.4+oracle10G的环境中完成的

其中两台机器的目录结构都是一样的
oracle用户的环境变量的设置都是
ORACLE_BASE=/u01/app
ORACLE_HOME=$ORACLE_BASE/oracle
ORACLE_SID=orcl

PATH=$ORACLE_HOME/bin:$PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

DISPLAY=192.168.11.1:0.0

export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH DISPLAY

源机器:192.168.11.128     安装了数据库实例和数据库orcl
目的机器:192.168.11.129    只是安装了数据库实例

1 以oracle在 /u01目录下创建一个备份目录 backup   mkdir /u01/backup

2 使用rman命令对数据库进行备份(如果数据库没open,请先startup) 其中备份脚本是

  run{
    allocate channel c1 device type disk;
    backup
    format '/u01/backup/db_full_%U.bkp'
    tag '2013-10-21'
    database plus archivelog;
    release channer c1;
  }

 3 备份控制文件
    backup current controlfile format '/u01/backup/control2013-10-21.bak';

  4 备份参数文件spfile
    backup spfile format '/u01/backup/spfile2013-10-21.bak';
 
  5 在目标服务器上复制备份数据,并且创建相同的目录结构(以oracle用户)

    mkdir /u01/backup
   
    scp -rp 192.168.11.128:/u01/backup/* /u01/backup/

  6 创建目录结构
   
    mkdir -p /u01/app/admin/oracle/{adump,bdump,cdump,dpdump,udump,pfile}

    mkdir -p /u01/app/oradata/orcl

    mkdir -p /u01/app/flash_recover_area/ORCL

  7 开始进行恢复 设置oracle_sid和创建最简单的initorcl.ora参数文件
    echo 'db_name=orcl' > $ORACLE_HOME/dbs/initorcl.ora
    export ORACLE_SID=orcl;
  8 使用rman命令连接,设置好dbid,并且启动至nomount状态
     使用rman命令连接
     rman target /
     设置好dbid,与源服务器上的oracle数据库的dbid一致
     set dbid 1357230443
     利用initorcl.ora启动数据库至nomount状态
     startup nomount;
     恢复参数文件
     restore spfile from '/u01/backup/spfile20131021.bak';
     利用spfileorcl.ora启动数据库至nomount状态
     startup nomount force;
     恢复控制文件
     restore controlfile from '/u01/backup/control20131021.bak';
     恢复数据文件
     restore database;
     exit
   
   9在已经恢复数据文件的基础上,进行数据库的恢复
   
    使用dba权限连接到数据库的sqlplus
    sqlplus / as sysdba
    recover database using backup controlfile until cancel;

    然后在对话命令行输入 cancel

     打开数据库,并且重置联机归档日志
     alter database open resetlogs;