全备份
run {
allocate channel d1 type disk;
allocate channel d2 type disk;
backup database format
'/oradata/rmanbck/oracle/database/Full_%u_%s_%p.bak' tag 'full.bak' plus
archivelog format
'/oradata/rmanbck/oracle/archive/Arch_l_%u_%s_%p.bak' tag 'arch.bak' delete all input;
release channel d1;
release channel d2;
}
0级备份
cat level0_backup.sh
export NLS_DATA_FORMAT='yyyy-mm-dd hh24:mi:ss'
ORACLE_SID=DB1
export ORACLE_SID
ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
export ORACLE_HOME
/u01/app/oracle/product/10.2.0/db_1/bin/rman target / << EOF
run {
allocate channel d1 type disk;
allocate channel d2 type disk;
backup incremental level 0 database tag 'full' format
'/home/oracle/rmanbck/oracle/database/level0_%d_%s_%p_%u.bak' plus
archivelog tag 'arch.bak' format
'/home/oracle/rmanbck/oracle/archive/arc_level0_%d_%s_%p_%u.bak' delete all input;
backup tag 'spfile_bak' format '/home/oracle/rmanbck/oracle/database/%d_spfile_%s_%T.bak' spfile;
backup tag 'ctl_bak' format '/home/oracle/rmanbck/oracle/database/%d_ctl_%s_%T.bak' current controlfile;
release channel d1;
release channel d2;
}
delete noprompt obsolete;
exit
EOF
*****************************************************************************************************************************************************
增量备份1
cat level1_backup.sh
export NLS_DATA_FORMAT='yyyy-mm-dd hh24:mi:ss'
ORACLE_SID=DB1
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
export ORACLE_HOME
/u01/app/oracle/product/10.2.0/db_1/bin/rman target / << EOF
run{
allocate channel d1 type disk;
allocate channel d2 type disk;
backup incremental level 1 format
'/home/oracle/rmanbck/oracle/database/level1_%d_%s_%p_%u.bak' database plus archivelog tag 'level1_archive' format
'/home/oracle/rmanbck/oracle/archive/arc_level1_%d_%s_%p_%u.bak' delete all input;
release channel d1;
release channel d2;
}
delete noprompt obsolete;
exit
EOF
*****************************************************************************************************************************************************
增量备份2
cat level2_backup.sh
export NLS_DATA_FORMAT='yyyy-mm-dd hh24:mi:ss'
ORACLE_SID=DB1
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
export ORACLE_HOME
/u01/app/oracle/product/10.2.0/db_1/bin/rman target / << EOF
run{
allocate channel d1 type disk;
allocate channel d2 type disk;
backup incremental level 2 format
'/home/oracle/rmanbck/oracle/database/level2_%d_%s_%p_%u.bak' database plus archivelog tag 'level2_archive' format
'/home/oracle/rmanbck/oracle/archive/arc_level2_%d_%s_%p_%u.bak' delete all input;
release channel d1;
release channel d2;
}
delete noprompt obsolete;
exit
EOF
计划任务
crontab -l
00 02 * * 1 /home/oracle/rmanbck/oracle/script/level0_backup.sh >> /home/oracle/rmanbck/oracle/log/level0_$(date +%F)_backup.log
00 02 * * 4 /home/oracle/rmanbck/oracle/script/level1_backup.sh >> /home/oracle/rmanbck/oracle/log/level1_$(date +%F)_backup.log
00 02 * * 0,2,3,5,6 /home/oracle/rmanbck/oracle/script/level2_backup.sh >> /home/oracle/rmanbck/oracle/log/level2_$(date +%F)_backup.log