RMAN备份与恢复实例


1.背景
     软件环境:操作系统:Windows Server 2008 R2,数据库:Oracle 11g 11.2.0.4
     服务器网络:服务器A:172.16.22.144,服务器B:172.16.22.145
     应用场景:从服务器A,将RMAN备份;恢复到服务器B上。
2.RMAN备份
  2.1脚本修改为符合本机实际情况
      1)rman.bat

  1. @echo off
  2. set oracle_sid=orcl
  3. set da=%date:~0,4%%date:~5,2%%date:~8,2%
  4. set oraclepath=\"D:\\oracle\\product\\11.2.0\\dbhome_1\\BIN\"
  5. %oraclepath%\\rman target / msglog D:\\DB_backup\\Oracle_DB\\rmanlog\\%da% cmdfile=D:\\DB_backup\\Oracle_DB\\sql.rman
        (1) 设置rman.bat中的oracle_sid,oraclepath,备份路径,cmdfile路径。  
     2)sql.man   

点击(此处)折叠或打开

  1. RUN {
  2.      CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
  3.      CONFIGURE CONTROLFILE AUTOBACKUP ON;
  4.      CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO \'D:/DB_backup/Oracle_DB/%F\';
  5.      ALLOCATE CHANNEL CH1 DEVICE TYPE DISK FORMAT \'D:/DB_backup/Oracle_DB/%U\';
  6.      BACKUP DATABASE SKIP INACCESSIBLE FILESPERSET 10
  7.      PLUS ARCHIVELOG FILESPERSET 20
  8.      DELETE ALL INPUT;
  9.      RELEASE CHANNEL CH1;
  10.  }
  11.    ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK;
  12.    CROSSCHECK BACKUPSET;
  13.    DELETE NOPROMPT OBSOLETE
        (1)设置sql.man中的备份路径('D:/DB_backup')。
2.2切换数据库为归档模式(归档模式跳过此步)
     在"mount"状态下,alter database archivlog,切换为归档模式,再将数据库改为"open"状态。更具备的代码如下:

点击(此处)折叠或打开

  1. SQL〉shutdown immediate;
  2. Database closed.
  3. Database dismounted.
  4. ORACLE instance shut down.
  5. SQL> startup mount;
  6. ORACLE instance started.

  7. Total System Global Area 2572144640 bytes
  8. Fixed Size 2283984 bytes
  9. Variable Size 1056966192 bytes
  10. Database Buffers 1509949440 bytes
  11. Redo Buffers 2945024 bytes
  12. Database mounted.
  13. SQL> alter database archivelog;

  14. Database altered.

  15. SQL> alter database open;

  16. Database altered.


  2.3cmd环境下执行rman.bat文件,执行完毕后,备份路径中会生成相关如下图的文件:
         
其中“C-1399XXX”为控制文件。
3.RMAN恢复
 3.1备份文件拷贝到目标机器
      将备份文件从服务器A的备份目录拷贝到目标机器B中。
 3.2查询服务器A中的数据库的dbid。

点击(此处)折叠或打开

  1. select dbid from v$database;
        上述语句查出的dbid后期会用到。
 3.3创建数据库实例
     用DBCA(图形界面比命令创建简单,暂且介绍图形界面)创建与源服务器A中同版本、同SID、主目录相同的Oracle实例。实例创建完毕后,停止实例名服务,删除Oracle主目录下\oradata\实例名\下的所有文件[此步还需要再验证]。
 3.4恢复控制文件
    (1)启动实例为nomount状态 

点击(此处)折叠或打开

  1. sqplus \"/as sysdba\"
  2. shutdown immediate;--已经打开先关闭
  3. startup nomout;
    (2)进入RAMN环境,恢复控制文件
  1. RMAN target /
  2. restore controlfile from\'目标机器存放备份路径\\XXX\';
        恢复成功会提示如下:
               通道 ORA_DISK_1: 恢复完成, 用时: 00:00:04
               输出文件名=D:\ORADATA\OCP\CONTROL01.CTL
               完成 restore 于 17-3月 -12
    (3)设置目标数据源的DBID

点击(此处)折叠或打开

  1. set dbid=\"3.2查询出的dbid的值\"
      (4)启动数据库到mount状态

点击(此处)折叠或打开

  1. alter database mount;
     (5)Catalog Start with 命令,向‘‘控制文件’’中加载备份集,通过此命令,Oracle可搜索指定目录中的备份文件,并将这些文件加载到控制文件中,使这些文件有恢复的可能。
        RMAN>  catalog start with '目标机器存放备份路径’;
       注意:控制文件不要加到这个目录下。
       catalog start with 过程时发现提示如下(跳过执行 restore):
 
点击( 此处 )折叠或打开
  1. using target database control file instead fo recovery catalog
  2. searching for all files that mathc the parttern D:\\DB_backup\\Oracle_DB\\
  3. no files found to be unknown to the database;
     (6)恢复数据文件
          restore database;
    (7)恢复数据文件
          recover database;
          
  1. Starting recover at 03-MAR-15
  2. using channel ORA_DISK_1

  3. starting media recovery

  4. archived log for thread 1 with sequence 1 is already on disk as file D:\\ORACLE\\FAST_RECOVERY_AREA\\ORCL\\ARCHIVELOG\\2015_0
  5. 3_03\\O1_MF_1_1_BHBNQ7NR_.ARC
  6. archived log for thread 1 with sequence 2 is already on disk as file D:\\ORACLE\\FAST_RECOVERY_AREA\\ORCL\\ARCHIVELOG\\2015_0
  7. 3_03\\O1_MF_1_2_BHBQWGXX_.ARC
  8. channel ORA_DISK_1: starting archived log restore to default destination
  9. channel ORA_DISK_1: restoring archived log
  10. archived log thread=1 sequence=1047
  11. channel ORA_DISK_1: reading from backup piece D:\\DB_BACKUP\\ORACLE_DB\\07Q0R4V6_1_1
  12. channel ORA_DISK_1: piece handle=D:\\DB_BACKUP\\ORACLE_DB\\07Q0R4V6_1_1 tag=TAG20150302T164422
  13. channel ORA_DISK_1: restored backup piece 1
  14. channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
  15. archived log file name=D:\\ORACLE\\FAST_RECOVERY_AREA\\ORCL\\ARCHIVELOG\\2015_03_03\\O1_MF_1_1047_BHBVD63J_.ARC thread=1 seque
  16. nce=1047
  17. archived log file name=D:\\ORACLE\\FAST_RECOVERY_AREA\\ORCL\\ARCHIVELOG\\2015_03_03\\O1_MF_1_1_BHBNQ7NR_.ARC thread=1 sequence
  18. =1
  19. channel default: deleting archived log(s)
  20. archived log file name=D:\\ORACLE\\FAST_RECOVERY_AREA\\ORCL\\ARCHIVELOG\\2015_03_03\\O1_MF_1_1047_BHBVD63J_.ARC RECID=6 STAMP=
  21. 873389702
  22. archived log file name=D:\\ORACLE\\FAST_RECOVERY_AREA\\ORCL\\ARCHIVELOG\\2015_03_03\\O1_MF_1_2_BHBQWGXX_.ARC thread=1 sequence
  23. =2
  24. unable to find archived log
  25. archived log thread=1 sequence=3
  26. RMAN-00571: ===========================================================
  27. RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
  28. RMAN-00571: ===========================================================
  29. RMAN-03002: failure of recover command at 03/03/2015 16:15:04
  30. RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 3 and starting SCN of 1755988
       RMAN-06054错误,重新来一遍recover database until scn 1755988。

        (8)打开数据库
          alter database open resetlogs;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8043290/viewspace-1455361/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8043290/viewspace-1455361/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值