RMAN备份恢复-窗口期方式和冗余方式

例子:Configure channel 1 device type disk format 'd:/backup/orcl/backup_%U';
在configure 命令中经常使用格式串,在backup,resotre,allocate channel 等其他RMAN 命令中也会经常看到格式串。
RMAN 提供了与格式串关联的一些语法元素。 这些元素称: 占位符, rman 将使用相应的定义值来替换他们。 
例如示例中的 %U 语法元素告诉RMAN要使用系统生成的唯一表示符替换文件名。 
使用FORMAT参数时可使用的各种替换变量,如下(注意大小写)所示:
    %a:Oracle数据库的activation ID即RESETLOG_ID。
    %c:备份片段的复制数(从1开始编号,最大不超过256)。
    %d:Oracle数据库名称。
    %D:当前时间中的日,格式为DD。
    %e:归档序号。
    %f:绝对文件编号。
    %F:基于"DBID+时间"确定的唯一名称,格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII 为该数据库的DBID,YYYYMMDD为日期,QQ是一个1~256的序列。
    %h:归档日志线程号。
    %I:Oracle数据库的DBID。
    %M:当前时间中的月,格式为MM。
    %N:表空间名称。
    %n:数据库名称,并且会在右侧用x字符进行填充,使其保持长度为8。比如数据库名JSSBOOK,则生成的名称则是JSSBOOKx。
    %p:备份集中备份片段的编号,从1开始。
    %s:备份集号。
    %t:备份集时间戳。
    %T:当前时间的年月日格式(YYYYMMDD)。
    %u:是一个由备份集编号和建立时间压缩后组成的8字符名称。利用%u可以为每个备份集生成一个唯一的名称。
    %U:默认是%u_%p_%c的简写形式,利用它可以为每一个备份片段(即磁盘文件)生成一个唯一名称,这是最常用的命名方式,
       执行不同备份操作时,生成的规则也不同,

如下所示:
生成备份片段时,%U=%u_%p_%c;
生成数据文件镜像复制时,%U=data-D-%d_id-%I_TS-%N_FNO-%f_%u;
生成归档文件镜像复制时,%U=arch-D_%d-id-%I_S-%e_T-%h_A-%a_%u;
生成控制文件镜像复制时,%U=cf-D_%d-id-%I_%u。
%Y:当前时间中的年,格式为YYYY。
注:如果在BACKUP命令中没有指定FORMAT选项,则RMAN默认使用%U为备份片段命名。

使用RMAN>show all;
可以显示出RMAN 配置参数为:

CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/app/oracle/product/11gr1/dbs/snapcf_orcl.f'; # default


1.configure retention policy to redundancy 1:
   是用来决定那些备份不再需要了,它一共有三种可选项,分别是
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;  --俗称7天的窗口期
CONFIGURE RETENTION POLICY TO REDUNDANCY 5;
CONFIGURE RETENTION POLICY TO NONE;
第一种: recover window是保持所有足够的备份,可以将数据库系统恢复到最近七天内的任意时刻。
        任何超过最近七天的数据库备份将被标记为obsolete。
第二种: redundancy 是为了保持可以恢复的最新的5份数据库备份,任何超过最新5份的备份都将被标记为redundancy。它的默认值是1份。
第三种: 不需要保持策略,clear将恢复回默认的保持策略。

一般最安全的方法是采用第二种保持策略。

2.CONFIGURE BACKUP OPTIMIZATION OFF
   默认值为关闭,如果打开,rman将对备份的数据文件及归档等文件进行一种优化的算法。
3.Configure default device type to disk:
   是指定所有I/O操作的设备类型是硬盘或者磁带,默认值是硬盘
   磁带的设置是CONFIGURE DEFAULT DEVICE TYPE TO SBT;

4.CONFIGURE CONTROLFILE AUTOBACKUP OFF
   强制数据库在备份文件或者执行改变数据库结构的命令之后将控制文件自动备份,默认值为关闭。
   这样可以避免控制文件和catalog丢失后,控制文件仍然可以恢复。

5.CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'
   是配置控制文件的备份路径和备份格式

6.CONFIGURE DEVICE TYPE DISK PARALLELISM 1;
   是配置数据库设备类型的并行度。

7.CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
   是配置数据库的每次备份的copy数量,oracle的每一次备份都可以有多份完全相同的拷贝。

8.CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1
   是设置数据库的归档日志的存放设备类型

9.CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/app/oracle/product/11gr1/dbs/snapcf_orcl.f'; # default
   是配置控制文件的快照文件的存放路径和文件名,这个快照文件是在备份期间产生的,用于控制文件的读一致性。

10.CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/app/oracle...%d_DB_%u_%s_%p';
   是配置备份文件的备份路径和备份格式

CONFIGURE CHANNEL DEVICE TYPE DISK  CLEAR; 用于清除上面的信道配置

CONFIGURE EXCLUDE FOR TABLESPACE [CLEAR]; 此命令用于将指定的表空间不备份到备份集中, 此命令对只读表空间是非常有用的。

        RMAN> backup database 
              format '/u01/app/oracle/rmanbak/whole_%d_%U';  --备份整个数据库
        
        RMAN> backup as compressed backupset database 
              format '/u01/app/oracle/rmanbak/whole_%d_%U'; --备份整个数据库并压缩备份集
              --------------------------
              注意:分号为一句的结束标记
              --------------------------
        RMAN> run{  
           allocate channel ch1 type disk   --手动分配一个通道
           maxpiecesize=2g;                 --指定备份片的大小为2g
           backup as compressed backupset   --压缩备份集
           format  '/u01/app/oracle/rmanbak/whole_%d_%U' filesperset=3  --指定备份集中允许容纳的文件数为个
           database;
           release channel ch1; --释放通道
        }                                  

        RMAN> configure device type disk parallelism 3;   --将并行度改为3
        RMAN> backup as compressed backupset    --并行度改为之后,自动启用了个通道
              format '/u01/app/oracle/rmanbak/whole_%d_%U' filesperset=3
              database;

        Starting backup at 14-OCT-10
        allocated channel: ORA_DISK_1
        channel ORA_DISK_1: sid=148 devtype=DISK    --sid值对应v$session视图中的sid
        allocated channel: ORA_DISK_2
        channel ORA_DISK_2: sid=146 devtype=DISK
        allocated channel: ORA_DISK_3
        channel ORA_DISK_3: sid=144 devtype=DISK

        RMAN> run{
           allocate channel ch1 type disk
           maxpiecesize=100m;   --备份片大小设置为m,则一个备份集包含多个备份片,且每个备份片大小为100m
           backup
           format '/u01/app/oracle/rmanbak/whole_%d_%U'
           database;
           release channel ch1;
        }
        RMAN> list backupset tag=TAG20101014T171115;

       
    -------------------------------------------------------------------------------------------

    2.备份数据文件

        RMAN> backup as copy datafile 4       -备份类型为镜像备份
              format '/u01/app/oracle/rmanbak/df_%d_%U';

        RMAN> list copy; 
        RMAN> backup datafile 4,5,6 format '/u01/app/oracle/rmanbak/df_%d_%U';    --备份类型为备份集

    ------------------------------------------------------------------------------------------

    3.备份表空间

        RMAN>  backup tablespace users,example format '/u01/app/oracle/rmanbak/tb_%d_%U';
         

    ----------------------------------------------------------------------------------

    4.备份控制文件


        RMAN> configure controlfile autobackup on;--自动备份控制文件置为on状态,将自动备份控制文件和参数文件

        注:在备份system01.dbf或system表空间时将会自动备份控制文件和参数文件,即使自动备份控制文件参数为off

        --单独备份控制文件及参数文件
        RMAN> backup current controlfile;

        --备份数据文件时包含控制文件
        RMAN> backup datafile 4 include current controlfile;

        RMAN> sql "alter database backup controlfile to ''/tmp/orclcontrol.bak''";
        sql statement: alter database backup controlfile to ''/tmp/orclcontrol.bak''

        RMAN>  sql "alter database backup controlfile to trace as ''/tmp/orclcontrol.sql''";
        sql statement: alter database backup controlfile to trace as ''/tmp/orclcontrol.sql'';

        --单独备份spfile
        RMAN> backup spfile format '/u01/app/oracle/rmanbak/sp_%d_%U';
        RMAN> backup copies 2 device type disk spfile;

    ------------------------------------------------------------------------------------

    5.备份归档日志文件

        备份归档日志时仅仅备份归档过的数据文件(不备份联机重做日志文件)

        备份归档日志时总是对归档日志做完整备份

        RMAN对归档日志备份前会自动做一次日志切换,且从一组归档日志中备份未损坏的归档日志

        RMAN会自动判断哪些归档日志需要进行备份

        归档日志的备份集不能包含其它类型的文件

        RMAN> backup  format '/u01/app/oracle/rmanbak/lf_%d_%U'
              archivelog all delete input;   --delete input 删除所有已经备份过的归档日志

        RMAN> backup archivelog all delete input
              format '/u01/app/oracle/rmanbak/lf_%d_%U';  --此种写法实现了上述相同的功能

        RMAN> backup archivelog sequence between 50 and 120 thread 1 delete input;

        RMAN> backup archivelog from time "sysdate-15" until time "sysdate-7";

        RMAN> backup
              format '/u01/app/oracle/rmanbak/lf_%d_%U'
              archivelog from sequence=80
              delete input;

        使用plus archivelog时备份数据库完成的动作(backup database plus archivelog)

            1.首先执行alter system archive log current 命令(对当前日志归档)
            2.执行backup archivelog all 命令(对所有归档日志进行备份)
            3.执行backup database命令中指定的数据文件、表空间等
            4.再次执行alter system archive log current
            5.备份在备份操作期间产生的新的归档日志


        --执行下面的命令,并观察备份列出的信息,可以看到使用plus archivelog时使用了上面描述的步骤来进行备份

        RMAN> backup database plus archivelog format '/u01/app/oracle/rmanbak/lg_%d_%U' delete input;

 
    6.备份闪回区

        RMAN> backup recovery area;

            使用backup recovery area时,将备份位于闪回区且未进行过备份的所有文件,这些文件包括完整、增量备份集、自动备份的

            控制文件(假定使用闪回区作为备份路径时)、归档日志、数据文件的镜像副本等。闪回日志,当前的控制文件。

            联机重做日志不会被备份

        RMAN> backup recovery files;

            使用backup recovery files时,将备份磁盘上未进行过备份的所有恢复文件,而不论是否位于闪回区   

        注:使用上述两条命令时,备份目的地必须是磁带

    7.总结:

        数据文件的备份集对于未使用的块可以执行增量备份,可以跳过未使用过的数据块来进行压缩备份

        对于控制文件、归档日志文件、spfile文件则是简单的拷贝,并对其进行打包压缩而已

三、备份的其它特性

    1.并发:主要用于提高备份的速度,可以分为手动并发或自动并发

        手动并发:通过分配多个通道并将文件指定到特定的通道

            RMAN> run {
                allocate channel ch1 device type disk;
                allocate channel ch2 device type disk;
                allocate channel ch3 device type disk;
                backup incremental level=0 format '/u01/app/oracle/rmanbak/df_%d_%U'
                   (datafile 1 channel ch1 tag='sys')
                   (datafile 3 channel ch2 tag='aux')
                   (datafile 2,4,5,6 channel ch3 tag='other');
                sql 'alter system archive log current';
                release channel ch1;
                release channel ch2;
                release channel ch3;
                }  

 

        自动并发:使用configure配置并发度即可

            RMAN> configure device type disk parallelism 3 backup type to backupset;


            --下面的备份将自动启用3个通道执行并发

            RMAN>  backup database format '/u01/app/oralce/rmanbak/p3_%U';

    2.复用备份

        即将一个备份集复制多份,同一备份集,Oracle最多可复用4个

        手工指定:

            RMAN> backup copies 2 datafile 4
                  format '/u01/app/oracle/rmanbak/d1/df_%U',
                         '/u01/app/oracle/rmanbak/d2/df_%U';  

        自动指定:配置下列参数

            RMAN> configure datafile backup copies for device type disk to 2;  --指定备份数据文件副本数

            RMAN> configure archivelog backup copies for device type disk to 2;--指定备份日志文件副本数

    3.备份备份集

        bacup backupset

    4.镜像备份

        镜像备份时会检查数据文件中是否存在坏块,可以使用nochecksum来跳过坏块的检测

        也可以指定maxcorrupt判断有多少个坏块时,Oracle将停止该镜像备份

               RMAN> backup as copy datafile 4 format '/u01/app/oracle/rmanbak/users.dbf' tag='users'

         --以下命令等同于上一条

        RMAN> copy datafile 4 to '/u01/app/oracle/rmanbak/user01.dbf';

        RMAN> backup as copy
              archivelog like 'o1_mf_1_118_6chl1byd_.arc'
              format '/u01/app/oracle/rmanbak/arch_1015.bak';

         --使用下面的configure命令将backup type设置为copy之后,则缺省的备份为镜像副本

        RMAN> configure device type disk parallelism 1 backup type to copy;
        RMAN> backup datafile 4  --由于上面的设置,则此命令备份的将是镜像副本
              format '/u01/app/oracle/rmanbak/users.dbf.bak' tag=users;   

         --使用并行度来执行镜像拷贝

        RMAN> configure device type disk parallelism 4;

        RMAN> backup as copy #3 files copied in parallel
              (datafile 1  format '/u01/app/oracle/rmanbak/df1.bak')
              (datafile 2  format '/u01/app/oracle/rmanbak/df2.bak')
              (datafile 3  format '/u01/app/oracle/rmanbak/df3.bak');

       

        镜像备份时指定子句 DB_FILE_NAME_CONVERT 来实现镜像路径转移,该子句也是一个初始化参数,
        用于primary db 到standby db 的数据文件的转换

            DB_FILE_NAME_CONVERT = ('string1' , 'string2' , 'string3' , 'string4' ...)
           
            用string2替换string1,string4替换string3

            RMAN> backup as copy device type disk
                  db_file_name_convert('oradata/orcl','bk/rmbk')
                  tablespace users;       

           

    5.压缩备份集   

        RMAN> configure channel device type disk format '/u01/app/oracle/rmanbak/%d_%U.bak';

        --下面的命令使用了参数as compressed来实现手动压缩

        RMAN> backup as compressed backupset database;

        RMAN> backup as compressed backupset datafile 4,5,6;

        --下面使用configure命令配置自动压缩备份集功能,则后续的备份会自动使用压缩功能

        RMAN> configure device type disk parallelism 4 backup type to compressed backupset;

        --由于设置了自动压缩,则下面的命令将压缩备份的system表空间及控制文件、参数文件

        RMAN> backup tablespace system tag=system;

    6.使用tag标记

        tag标记可以为备份集或映像副本指定一个有意义的名字,以备后续使用,其优点如下

            为备份集或映像副本提供描述信息

            能够在list 命令中使用更好的定位备份文件

            能够在restore和switch命令中使用

            同一个tag在多个备份集或多个映像副本中使用

            当未指定tag标记时,则系统产生缺省的tag标记,其格式为:TAGYYYYMMDDTHHMMSS

       

        RMAN> backup as compressed backupset datafile 1,2,3 tag='Monthly_full_bak';      

        RMAN> backup as compressed backupset tablespace users tag='Weekly_full_bak';        

        RMAN> list backupset tag=monthly_full_bak; 


    7.增量备份

        差异增量备份将备份自上次增量备份以来所有发生改变的数据块

        累计增量备份将备份自上次0级增量备份以来所有改变过的数据块

    
        --下面启用0级增量备份

        RMAN> run{
              allocate channel ch1 type disk;
              backup incremental level 0 database
                format '/u01/app/oracle/rmanbak/db_%d_%U'
                tag=db_inc_0;
              release channel ch1;
              }


        SQL> select sid,sofar,totalwork from v$session_longops;  --查询备份情况


        --下面启用1级''差异增量''备份: 

        RMAN> run{
                 allocate channel ch1 type disk;
                 backup incremental level 1 database
                   format '/u01/app/oracle/rmanbak/db1_%d_%U'
                   tag=db_inc_1;
                 release channel ch1;
                 }

 

        --下面启用1级''累计增量''备份

        RMAN> run{
                 allocate channel ch1 type disk;
                 backup incremental level 1 cumulative database
                   format '/u01/app/oracle/rmanbak/dbc_%d_%U'
                   tag=db_inc_c_1;
                 release channel ch1;
                 }

 

    8.启用块变化跟踪

        启用块变化跟踪即是指定一个文件用于记录数据文件中哪些块发生了变化,在RMAN进行增量备份时,仅仅需读取该文件来备份这些

        发生变化的块,从而减少了备份时间和I/O资源。

        使用下面的命令来启用块变化跟踪

            SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '

'
 

 

        SQL> alter database enable block change tracking using file '/u01/app/oracle/oradata/orcl/blk_ch_trc.trc';

        SQL> ls -lht /u01/app/oracle/oradata/orcl/blk_ch_trc.trc

        -rw-r----- 1 oracle oinstall 12M Oct 15 19:41 /u01/app/oracle/oradata/orcl/blk_ch_trc.trc

 

        SQL> select * from v$block_change_tracking;


        STATUS     FILENAME                                           BYTES

        ---------- --------------------------------------------- ----------

        ENABLED    /u01/app/oracle/oradata/orcl/blk_ch_trc.trc     11599872


        SQL> alter database disable block change tracking; --disable后块变化跟踪文件被自动删除

 

        SQL>  select * from v$block_change_tracking;

 

        STATUS     FILENAME                                           BYTES

        ---------- --------------------------------------------- ----------

        DISABLED       

       

    9.备份保留策略

        保留策略主要是保留备份副本的一些规则,通常用于满足恢复或其他的需要(比如磁盘空间或磁带空间大小限制)

        备份保留策略分为"冗余""恢复窗口",这两种保留策略互不兼容,要么使用前者,要么使用后者

        备份冗余:<redundancy 1>

               默认为1,可以通过RMAN> configure retention policy to redundancy 2;来修改

               当为1时,RMAN会为每个数据文件、归档日志、控制文件生成一个备份。可以使用report obsolete命令查看备份数多于1的备份

               并使用delete obsolete来删除过时的备份

           

        恢复窗口:<recovery window of 7 days>      

               恢复窗口允许完成恢复到过去某个时间点的时点恢复,通常设定为多少天

               使用命令
               RMAN> CONFIGURE RETENTION POLICY TO RECOVERY window of 7 days;
                     old RMAN configuration parameters:
                     CONFIGURE RETENTION POLICY TO REDUNDANCY 1;
                     new RMAN configuration parameters:
                     CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
                     new RMAN configuration parameters are successfully stored
                RMAN> 

               该命令将确保具有足够的数据文件和归档日志来执行能够返回一个星期中任意时间点的不完全恢复,且允许删除随着时间推移

               而变为废弃的备份,即应当满足该条件:SYSDATE - BACKUP CHECKPOINT TIME >= 7

               对于大于天但是是恢复所需要的备份依然会被保留

           

        清除备份保留策略

            RMAN> configure retention policy clear;


        注意obsolete 与expired

            obsolete:是指根据保留策略来确定该备份是否在恢复的时候需要,如不在需要或有更新的备份来替代,
                      则该备份集被置为obsolete,即废弃的备份集或镜像副本。

            expired: 是指执行crosscheck时,根据存储仓库中记录的备份信息来定位备份集或镜像副本,
                     而找不到对应的备份集或镜像副本,则这些备份集或镜像副本被置为expired。

    10.使用BACKUP ... VALIDATE验证数据文件逻辑坏块,损坏的坏块将被记录到v$database_block_corruption视图

            BACKUP VALIDATE CHECK LOGICAL DATABASE ARCHIVELOG ALL;


四、备份相关的动态性能视图及监控

    1.相关视图

        v$backup_files

        v$backup_set

        v$backup_piece

        v$backup_redolog

        v$backup_spfile

        v$backup_device

        v$rman_configuration

        v$archived_log

        v$backup_corruption

        v$copy_corruption

        v$database_block_corruption

        v$backup_datafile

       

    2.查看channel对应的server sessions

            使用set command id命令

        查询v$process和v$session判断哪一个会话与之对应的RMAN通道

        SQL> select sid,username,client_info from v$session where client_info is not null;
           

        --下面使用了set command id命令

        RMAN> run{
              allocate channel ch1 type disk;
              set command id to 'rman';
              backup as copy datafile 4 format '/u01/app/oracle/rmanbak/dd_%U';
              }

           

        SQL> select sid,username,client_info from v$session where client_info is not null;


        SQL> select sid,spid,client_info
              from v$process p ,v$session s
              where p.addr = s.paddr
              and client_info like '%id=%';

        --查看rman完整的进度      

        SQL> select sid,serial#,context,sofar,totalwork,
              round(sofar/totalwork*100,2) "% Complete"
              from v$session_longops
              where opname like 'RMAN:%'
              and opname not like 'RMAN:aggregate%'
              and totalwork!=0;    

 
        --通过如下SQL获得rman用来完成备份操作的服务进程的SID与SPID信息:

        select sid, spid, client_info
          from v$process p, v$session s
         where p.addr = s.paddr
           and client_info like '%id=rman%'


案例.Linux下的rman自动备份

        1. 设置备份恢复期为7天:
        RMAN> CONFIGURE RETENTION POLICY TO RECOVERY window of 7 days;
        
        2. 备份脚本+crontab

        bak_inc0 :0级增量备份,每周日使用0级增量进行备份

        bak_inc1 :1级增量备份,每周三使用1级增量备份,备份从周日以来到周三所发生的数据变化

        bak_inc2 :2级增量备份,备份每天发生的差异增量。如从周日到周一的差异,从周一到周二的差异

        --下面是级增量的脚本,其余级与级依法炮制,所不同的是备份级别以及tag标记

        --下面启用0级''增量增量''备份

        [oracle@oradb scripts]$ cat bak_inc0
         run {
               allocate channel ch1 type disk;
               backup as compressed backupset incremental level 0
                 format '/u01/oracle/bk/rmbk/incr0_%d_%U'
                 tag 'day_incr0'
                 database plus archivelog delete input;
                 crosscheck backup;
                 crosscheck archivelog all;
                 delete noprompt obsolete;
                 delete noprompt expired archivelog all;
               release channel ch1;
            }


       --下面启用1级''差异增量''备份:以最近级别为0或者1的增量备份为基础,备份修改的数据

         [oracle@oradb scripts]$ cat bak_inc1
             run{
                  allocate channel ch1 type disk;
                  backup incremental level 1 database
                    format '/u01/app/oracle/rmanbak/db1_%d_%U'
                    tag=day_inc_1;
                    crosscheck backup;
                    crosscheck archivelog all;
                    delete noprompt obsolete;
                    delete noprompt expired archivelog all;
                  release channel ch1;
              }



        --下面启用1级''累积增量''备份:以最近级别为0的增量备份为基础,每次都是从级别0为备份起点为开始备份

        [oracle@oradb scripts]$ cat bak_inc2
             run{
                  allocate channel ch1 type disk;
                  backup incremental level 1 cumulative database
                    format '/u01/app/oracle/rmanbak/dbc_%d_%U'
                    tag=day_inc_2;
                    crosscheck backup;
                    crosscheck archivelog all;
                    delete noprompt obsolete;
                    delete noprompt expired archivelog all;
                  release channel ch1;
                }


        逐个测试脚本
        [oracle@oradb bk]$ rman target / log=/u01/oracle/bk/log/bak_inc0.log  append cmdfile=/u01/oracle/bk/scripts/bak_inc0.rcv



[root@oradb ~]# crontab -e -u oracle

45 23 * * 0 rman target / log=/u01/oracle/bk/log/bak_$(date +%F)_inc0.log append cmdfile=/u01/oracle/bk/scripts/bak_inc0.rcv

45 23 * * 1 rman target / log=/u01/oracle/bk/log/bak_$(date +%F)_inc2.log append cmdfile=/u01/oracle/bk/scripts/bak_inc2.rcv

45 23 * * 2 rman target / log=/u01/oracle/bk/log/bak_$(date +%F)_inc2.log append cmdfile=/u01/oracle/bk/scripts/bak_inc2.rcv

45 23 * * 3 rman target / log=/u01/oracle/bk/log/bak_$(date +%F)_inc1.log append cmdfile=/u01/oracle/bk/scripts/bak_inc1.rcv

45 23 * * 4 rman target / log=/u01/oracle/bk/log/bak_$(date +%F)_inc2.log append cmdfile=/u01/oracle/bk/scripts/bak_inc2.rcv

45 23 * * 5 rman target / log=/u01/oracle/bk/log/bak_$(date +%F)_inc2.log append cmdfile=/u01/oracle/bk/scripts/bak_inc2.rcv

45 23 * * 6 rman target / log=/u01/oracle/bk/log/bak_$(date +%F)_inc2.log append cmdfile=/u01/oracle/bk/scripts/bak_inc2.rcv


        保存之后重启crontab

        [root@oradb ~]# /etc/init.d/crond restart

        检查自动备份是否成功执行


@@@@@@@
脚本方式
@@@@@@@

1.--下面启用0级''增量增量''备份

#!/bin/bash
time=$(date +%F)
bakdir=/dba/bak

rman target / <<EOF
spool log to ${bakdir}/incr0_${time}.log append
run {
     allocate channel ch1 type disk;
     backup as compressed backupset incremental level 0
       format '/dba/bak/incr0_%d_%U'
       tag 'day_incr0'
       database plus archivelog delete input;
     crosscheck backup;
     crosscheck archivelog all;
     delete noprompt obsolete;
     delete noprompt expired archivelog all;
     release channel ch1;
}
spool log off;
EOF
原文地址:https://www.cnblogs.com/vmsysjack/p/12596130.html