RMAN备份

要求:
每周日执行0级增量备份,周一、周二执行1级差异增量备份,周三执行1级累积增量备份,周四、周五、周六执行1级差异增量备份

每周日执行0级增量备份脚本:

#!/bin/bash
# name:bkfull.sh
# date:2014/04/11
# desc: backup incremental level 0 database with rman
#this script will execute in the end of each Sunday
export ORACLE_BASE=/u01/app
export ORACLE_HOME=/u01/app/oracle
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
export LANG=en_US
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
rman target/ << EOF_RMAN
run{
     configure retention policy to recovery window of 7 days;
     configure controlfile autobackup on;
     allocate channel c1 type disk;
     backup incremental level 0 tag 'db0' format
     '/u01/app/RMANBK/bk_dir/db0_%d_%T_%s' database skip inaccessible
     include current controlfile;
     backup archivelog all format '/u01/app/RMANBK/log/log_%u' delete all input;
     crosscheck backup;
     delete noprompt expired backup;
     delete noprompt obsolete;
     release channel c1;
}
#end

周三执行1级累积增量备份脚本:

#!/bin/bash
# name:cumu_incre01.sh
# date:2014/04/11
# desc: backup database with level 1 incremental backup
#this script will execute in the each of Wednesday
export ORACLE_BASE=/u01/app
export ORACLE_HOME=/u01/app/oracle
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
rman target / << EOF_RMAN
run{
     configure retention policy to recovery window of 3 days;
     configure controlfile autobackup on;
     allocate channel c1 type disk;
     allocate channel c2 type disk;
     backup incremental level 1  cumulative database skip inaccessible 
     tag 'cumu_db1' format
     '/u01/app/RMANBK/bk_dir/cumu_db1_%d_%T_%s'
     include current controlfile;
     backup archivelog all format '/u01/app/RMANBK/log/cumu_db1_log_%u';
     delete archivelog all completed before 'sysdate-3';  
     delete noprompt expired backup;
     delete noprompt obsolete;
     release channel c1;
     release channel c2;
}
#end

周一、周二、周四、周五、周六执行1级差异增量备份脚本:

#!/bin/bash
# name:diff_incre01.sh
# date:2014/04/11
# desc: backup database with level 1 incremental backup
#this script will execute in each week except Wednesday
export ORACLE_BASE=/u01/app
export ORACLE_HOME=/u01/app/oracle
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
rman target / << EOF_RMAN
run{
     configure controlfile autobackup on;
     allocate channel c1 type disk;
     allocate channel c2 type disk;
     backup incremental level 1 tag 'diff_db1' format
     '/u01/app/RMANBK/bk_dir/diff_db1_%d_%T_%s' database skip inaccessible
     include current controlfile;
     backup archivelog all format '/u01/app/RMANBK/log/diff_db1_log_%u';
     delete archivelog all completed before 'sysdate-1';  
     delete noprompt expired backup;
     delete noprompt obsolete;
     release channel c1;
     release channel c2;
}
#end

计划任务:

30 01 * * 0 /u01/app/RMANBK/scripts/bkfull.sh >>
/u01/app/RMANBK/log/crontab_full.log
30 01 * * 1,2,4,5 /u01/app/RMANBK/scripts/diff_incre01.sh >>
/u01/app/RMANBK/log/crontab_diff_incre.log
30 01 * * 3 /u01/app/RMANBK/scripts/cumu_incre01.sh >>
/u01/app/RMANBK/log/crontab_cumu_incre.log

 

你可能感兴趣的:(rman,backup)