• 使用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出来的文件,所以在此清除了过期文件之后,备份恢复正常
  • 相关阅读:
    WPF / Win Form:多线程去修改或访问UI线程数据的方法( winform 跨线程访问UI控件 )
    TCP 流模式与UDP数据报模式(转)
    hibernate 检索方式
    【UVA】1449-Dominating Patterns(AC自己主动机)
    软件项目工作流程图
    iOS7 UIKit动力学-碰撞特性UICollisionBehavior 下
    东莞无人工厂变成现实,中国无人工厂将非常快普及,保住世界工厂地位
    小米手机与魅族的PK战结果 说明了什么
    python Debug 单步调试
    合并两个排序的单链表
  • 原文地址:https://www.cnblogs.com/HondaHsu/p/5489422.html
Copyright © 2020-2023  润新知