zoukankan      html  css  js  c++  java
  • Oracle RMAN 的 show,list,crosscheck,delete命令整理

    1、SHOW命令:
       显示rman配置: RMAN> show all;

    2、REPORT命令:
       2.1、RMAN> report schema                        报告目标数据库的物理结构;
       2.2、RMAN>report need backup days=3;            报告最近3天没有被备份的数据文件;
       2.3、RMAN> report need backup days 3 tablespace users;   在USERS表空间上3天未备份的数据文件;
       2.4、RMAN> report need backup incremental 3;    报告恢复数据文件需要的增量备份个数超过3次的数据文件;
       2.5、RMAN> report need backup redundancy 2 database;           报告备份文件低于2份的所有数据文件;
            RMAN>report need backup redundancy=2;
       2.6、RMAN> report need backup recovery window of 6 days;    报告文件报表的恢复需要超过6天的归档日志的数据文件;
       2.7、RMAN> report unrecoverable;      报告数据库所有不可恢复的数据文件;
       2.8、RMAN> report obsolete redunndancy 2; 报告备份次数超过2次的陈旧备份;
       2.9、RMAN>report obsolete;          报告多余的备份;

    3、LIST命令:列出备份信息
       3.1、列出数据文件备份集
            RMAN>list backup         列出详细备份;
            RMAN>list expired backup     列出过期备份;
            RMAN> list backup of database;     列出所有数据文件的备份集;
            RMAN> list backup of tablespace user01; 列出特定表空间的所有数据文件备份集;
       3.2、RMAN> list backup of controlfile     列出控制文件备份集;
       3.3、RMAN> list backup of archivelog all      列出归档日志备份集详细信息;
            RMAN>list archivelog all;      列出归档日志备份集简要信息
       3.4、RMAN> list backup of spfile              列出SPFILE备份集;
       3.5、RMAN> list copy of datafile 5        列出数据文件映像副本;
       3.6、RMAN> list copy of controlfile           列出控制文件映像副本;
       3.7、RMAN> list copy of archivelog all    列出归档日志映像副本;
       3.8、RMAN> list incarnation of database       列出对应物/列出数据库副本;
       3.9、RMAN>list backup summary;    概述可用的备份;
                    B表示backup
                    F表示FULL
                    A表示archive log
                    0 1表示incremental backup
                    S说明备份状态(A AVAILABLE   X EXPIRED )
         
       3.10、RMAN>list backup by file    按备份类型列出备份;
                        按照数据文件备份,归档日志备份,控制文件备份,服务器参数文件备份 列出

    4、CROSSCHECK命令:校验备份信息
       4.1、RMAN> crosscheck backup             核对所有备份集;   
       4.2、RMAN> crosscheck backup of database      核对所有数据文件的备份集;   
       4.3、RMAN> crosscheck backup of tablespace users      核对特定表空间的备份集;   
       4.4、RMAN> crosscheck backup of datafile 4    核对特定数据文件的备份集;   
       4.5、RMAN> crosscheck backup of controlfile   核对控制文件的备份集;   
       4.6、RMAN> crosscheck backup of spfile    核对SPFILE的备份集;   
       4.7、RMAN> crosscheck backup of archivelog sequence 3 核对归档日志的备份集;   
       4.8、RMAN> crosscheck copy               核对所有映像副本;   
       4.9、RMAN> crosscheck copy of database       核对所有数据文件的映像副本;   
       4.10、RMAN> crosscheck copy of tablespace users       核对特定表空间的映像副本;   
       4.11、RMAN> crosscheck copy of datafile 6        核对特定数据文件的映像副本;   
       4.12、RMAN> crosscheck copy of archivelog sequence 4  核对归档日志的映像副本;   
       4.13、RMAN> crosscheck copy of controlfile       核对控制文件的映像副本;  
       4.14、RMAN> crosscheck backup tag='SAT_BACKUP';
       4.15、RMAN> crosscheck backup completed after 'sysdate - 2'
       4.16、RMAN> crosscheck backup completed between 'sysdate - 5' and 'sysdate -2 '
       4.17、RMAN> crosscheck backup device type sBT;
       4.18、RMAN> crosscheck archivelog all;
       4.19、RMAN> crosscheck archivelog like '%ARC00012.001'
       4.20、RMAN> crosscheck archivelog from sequence 12;
       4.21、RMAN> crosscheck archivelog until sequence 522;

    5、DELETE:删除备份
       5.1、RMAN> delete obsolete;      删除陈旧备份;
       5.2、RMAN> delete expired backup; 删除EXPIRED备份     
       5.3、RMAN> delete expired copy;   删除EXPIRED副本;
       5.4、RMAN> delete backupset 19;   删除特定备份集;
       5.5、RMAN> delete backuppiece ''d:/backup/DEMO_19.bak''   删除特定备份片;
       5.6、RMAN> delete backup      删除所有备份集;
       5.7、RMAN> delete datafilecopy ''d:/backup/DEMO_19.bak''  删除特定映像副本;
       5.8、RMAN> delete copy   删除所有映像副本;
       5.9、RMAN> backup archivelog all delete input;
           RMAN> backup backupset 22 format = ''d:/backup/%u.bak'' delete input
                           在备份后删除输入对象;
       5.10、RMAN> delete backupset id; 删除备份集
    -------------------------------------------------------------------------------------------------------------
    RMAN 的list 命令
      
      1 列出对应物  RMAN>list incarnation;
      
      2 列出备份
      
      2.1概述可用的备份    RMAN>list backup summary;
                   B 表示 backup
     
                   F 表示 FULL
                   A 表示 archive log
                     0 1 表示 incremental backup
                   S 说明备份状态 (A AVAILABLE   X EXPIRED )
      
      2.2按备份类型列出备份  RMAN>list backup by file;
                   按照 数据文件备份,归档日志备份,控制文件备份,服务器参数文件备份 列出
      
      2.3列出详细备份     RMAN>list backup;
      
      2.4列出过期备份     RMAN>list expired backup;
      
      2.5列出表空间和数据文件备份
                  list backup of tablespace 和list backup of datafile 输出和list backup 相似
                   如:list backup of tablespace user_tbs;
                     list backup of datafile 3;
      
      2.6列出归档日志备份   RMAN>list archivelog all;      简要信息
        RMAN>list backup of archivelog all; 详细信息
      
      2.7列出控制文件和服务器参数文件
                   RMAN>list backup of controfile;
                   RMAN>list backup of spfile;
      
      =====================================================
      =====================================================
      RMAN 的 report命令
      
      1. 报告最近没有被备份的数据文件
        RMAN>report need backup days=3;
       
      2. 报告备份冗余或恢复窗口
        RMAN>report need backup redundancy=2;
        RMAN>report need backup recovery window of 2 days;
       
      3. 报告数据文件的不可恢复操作
        RMAN>report unrecoverable;
      
      4. 报告数据库模式
        RMAN>report schema;
       
      5. 报告丢弃的备份
        如果使用了保存策略,备份会标记为丢弃状态  RMAN>report obsolete; 删除丢弃状态备份RMAN>delete obsolete;
      
      =====================================================
      =====================================================
      RMAN的crosscheck 命令
      
      1 备份集有两种状态A(Available,RMAN认为该项存在于备份介质上)X(Expired,备份存在于控制文件或恢复目录中,但是并没有物理存在于备份介质上)
       
      2 crosscheck 的目的是检查RMAN 的目录以及物理文件,如果物理文件不存在于介质上,将标记为Expired。如果物理文件存在,将维持Available。如果原先标记为Expired的备份集再次存在于备份介质上(如恢复了损坏的磁盘驱动器后),crosscheck将把状态重新从Expired标记回Available。
      
      3 crosscheck 输出分两部分。第一部分列出确定存在于备份介质上的所有备份集片,第二部分列出不存在于备份介质上的备份集片,并将其标记为Expired。当设置备份保存策略后,一个备份过期,crosscheck之后标记为丢弃的备份状态依旧为availabel,要删除丢弃备份delete obsolete。
      
      4 示例:
       crosscheck backup
       crosscheck backup of datafile 1;
       crosscheck backup of tablespace users;
       crosscheck backup of controfile;
       crosscheck backup of controlfile;
       crosscheck backup tag='SAT_BACKUP';
       crosscheck backup completed after 'sysdate - 2'
       crosscheck backup completed between 'sysdate - 5' and 'sysdate -2 '
       crosscheck backup device type sbt;
       crosscheck archivelog all;
       crosscheck archivelog like '%ARC00012.001'
       crosscheck archivelog from sequence 12;
       crosscheck archivelog until sequence 522;
      
      =====================================================
      =====================================================
      RMAN 的validate 命令
      
      1 validate 命令验证备份集片是否能够被还原
      
      2 list backup summary; 得到了备份集得主键ID如40,然后validate backupset 40;
      =====================================================
      =====================================================
      RMAN 的备份保存策略以及change ,delete命令
      
      0.带delete参数的change 命令删除备份集,从备份介质,并且从控制文件和恢复目录中删除。
       change backupset 117,118 delete;
       change backuppiece 1304 delete;
       change archivelog until logseq =544 delete;
      
      1.两类策略:恢复窗口备份保存策略(recovery windows backup retension policy) 基于时间
            备份冗余备份保存策略(backup redundancy backup retension policy) 基于备份的数量
      
       两类策略互相排斥
       
      2.即使使用了备份保存策略,备份到期并不删除,只是在RMAN目录中标记为丢弃,看到的状态依旧为available;
       要查看标记为丢弃的备份 report obsolete,只有使用delete obsolete才真正物理删除。
      
      3.configure retension policy to recovery window of 7 days;
       configure retension policy to redundancy 3;
       显示结果 show all;
       
      4.查看到期丢弃的备份时,可能需要手工保存一些备份 ,可以使用change 命令带keep 参数,使用这个命令后,那些被修改的备份将被认为是个long-term backup,不在受保存策略影响也就是说delete obsolete 也不删除。
      
      5.要使备份时候不受保存策略影响 ,使用带keep参数的backup 命令
       backup database keep forever;
       backup database keep 5 days;
      
      6.change 命令功能
      
        可以修改备份为永久保存并将以及该备份的相关的日志保存下来,保证总能将备份恢复到当前时间点
        change backupset 31 keep forever logs;
        可以设置备份丢弃的新日期 ,将备份在多保存7 天,7 天后将删除
        change backupset 32 keep until time 'sysdata + 7' logs;
      
      7.change 可以将备份集设置为unavailable
        change backupset 33 unavailable;
        标记为unavailable状态的备份集并不参与crosscheck;
      =====================================================
      =====================================================
      恢复目录的记录删除
      
      1. $ORACLE_HOME/rdbms/admin/prgrmanc.sql 脚本定期删除恢复目录中具有DELETED状态的记录
      
      2. 要删除旧的对应物记录incarnation.必须从DBINC 表中删除这些对应物,使用RC_DATABASE_INCARNATION 视图来确定要删除的对应物。记录要删除的每个对应物的DBINC_KEY
        随后启动SQL*Plus,执行delete from dbinc where dbinc_key=2;
      =====================================================
      =====================================================
      手工同步恢复目录
      
      resync catalog;
      
      Oracle同步恢复目录的时候,首先创建快照控制文件,然后比较这个文件和恢复目录,完成后,Oracle 更新恢复目录,使恢复目录和控制文件同步
      =====================================================
      =====================================================
      在RMAN 中存储脚本
      
      1,连接到目标数据库和恢复目录
        rman target / catalog rman/rman@rman9i
       
      2,创建脚本
        RMAN>create script my_bk_script
        2>{backup database plus archivelog;}
         create script my_bk_script
        
      3,打印脚本
       RMAN>print script my_bk_script;
       printing stored scipt:my_bk_script
       {backup database plus archivelog;}
       
      4,运行这个脚本,备份目标数据库
       RMAN>run {execute scipt my_bk_script;}
       
      5 删除脚本
       RMAN>delete script my_bk_script;
      =====================================================
      =====================================================
      archivelog模式下的完全恢复
      
      step1:set oracle_sid=recover
          rman target rman_backup/password
          configure controlfile autobackup on;
          
      step2:backup database plus archivelog delete input;
      
      step3:shutdown immediate;
      
      step4:重命名所有的数据文件和控制文件,不重命名联机重做日志。
      
      step5: startup nomount;
          set DBID=****
          restore controlfile from autobackup;
          alter database mount;
         
      step6: restore database;
          recover database;
          alter database open resetlogs;
      
      表空间恢复
      
      sql"alter tablespace users offline";
      sql"alter tablespace tools offline";
      restore tablespace users,tools;
      recover tablespace users,tools;
      sql"alter tablespace users online";
      sql"alter tablespace tools online";
      
      数据文件恢复
      
      sql"alter database datafile 3 offline";
      sql"alter database datafile 'd:oracleoradatausers01.dbf' offline";
      restore datafile 3
      restore datafile 'd:oracleoradatausers01.dbf';
      recover datafile 3
      recover datafile 'd:oracleoradatausers01.dbf';
      sql"alter database datafile 3 online";
      sql"alter database datafile 'd:oracleoradatausers01.dbf'online";
      
      =====================================================
      =====================================================
      切换当前的incarnation 回到resetlogs 前RESET DATABASE TO INCARNATION inc_key
      
      =====================================================
      =====================================================
      
      RMAN 高级恢复
      
      1 基于时间点的恢复
      run
      {
      set until time "to_date('07/01/02 15:00:00','mm/dd/yy hh24:mi:ss')"'
      restore database;
      recover database;
      alter database open resetlogs;
      }
      
      2 基于SCN 的恢复
      startup mount;
      restore database UNTIL SCN 10000;
      recover database UNTIL SCN 10000;
      alter database open resetlogs;
      
      3 基于日志序列的恢复
      startup mount;
      restore database UNTIL SEQUENCE 100 thread 1;
      recover database UNTIL SEQUENCE 100 thread 1;
      alter database open resetlogs;
  • 相关阅读:
    SQL Server中的事务日志管理(7/9):处理日志过度增长
    SQL Server中的事务日志管理(6/9):大容量日志恢复模式里的日志管理
    如何阻止SELECT * 语句
    SQL Server中的事务日志管理(5/9):完整恢复模式里的日志管理
    SQL Server中的事务日志管理(4/9):简单恢复模式里的日志管理
    SQL Server中的事务日志管理(3/9):事务日志,备份与恢复
    SQL Server中的事务日志管理(2/9):事务日志架构概述
    在SQL Server里如何进行页级别的恢复
    SQL Server中的事务日志管理(1/9):事务日志概况
    第24/24周 数据库维护(Database Maintenance)
  • 原文地址:https://www.cnblogs.com/sopost/p/2190131.html
Copyright © 2011-2022 走看看