zoukankan      html  css  js  c++  java
  • 使用RMAN从磁带库恢复归档文件

     
    最近用RMAN对部分归档日志进行了恢复,在此记录恢复过程
    由于不能透漏数据库信息,故举例如下:
    ORACLE_SID=hrdb
    恢复目标路径:/NewRmanbak/restore_archive/
    需要恢复的LOG SEQUENCE:
    恢复所用用户:oracle:oinstall
     
    1、查询对应的Sequence Number,准备恢复目标目录,并赋予相关权限
    select l.SEQUENCE#, l.* from v$archived_log l
    where l.COMPLETION_TIME>=to_date('2016-05-14 09:00:00','yyyy-mm-dd hh24:mi:ss')
    --and l.COMPLETION_TIME<=to_date('2016-05-16 09:00:00','yyyy-mm-dd hh24:mi:ss')
    and l.DEST_ID=1
    and l.SEQUENCE#<130519  
    查询需要恢复归档日志的SEQ号

      RMAN> list backup of archivelog  from logseq 130430 until logseq 130519;

    $ mkdir /NewRmanbak/restore_archive/
    $ chown oracle:oinstall /NewRmanbak/restore_archive/
    创建恢复目录(用于存储恢复的归档日志)
    2、开始恢复
      
    run{
     ALLOCATE CHANNEL dev1 TYPE 'sbt_tape'
      parms  'ENV=(NSR_DATA_VOLUME_POOL=oracle,NSR_SERVER=baksvr,NSR_CLIENT=hrdb)';
      set archivelog destination to '/NewRmanbak/restore_archive/'; 
     restore archivelog from logseq 130430 until logseq 130519;
     release channel dev1;
    }
    恢复脚本
      由此可以得到四个归档文件在/NewRmanbak/restore_archive/中
    注:上文提及的channel type可以在list列表中查看,另外可以通过v$backup_device动态性能视图查看
     
    另近期发现在Symantec Netbackup软件中,该库的ARCH备份一直不正常,检查日志发现是找不到上次恢复的文件:
    RMAN> crosscheck archivelog all;
     
      由于之前恢复完成之后,将这几个文件移动了位置,所以一直找不到这些文件导致备份失败(根据目前的理解,在RMAN和当前数据库中,每一个归档文件的存在是一份的,也就是说,restore是将备份集中的file move出来了,而不是copy)
    当restore之后,即使文件恢复了,oracle也会认为这个文件是数据库可用的文件。故在下次备份的时候也查找这几个restore出来的文件,所以在此清除了过期文件之后,备份恢复正常
  • 相关阅读:
    2019暑假集训 windy数
    2019暑假集训 数字游戏
    2019暑假集训 周年纪念晚会
    2019暑假集训 加分二叉树
    0013-求圆柱体体积
    0012-求滑动距离
    0011-绝对值函数
    0010-温度转换
    0009-乘法问题
    0008-三位数倒序问题
  • 原文地址:https://www.cnblogs.com/HondaHsu/p/5489422.html
Copyright © 2011-2022 走看看