3 rman自动备份脚本
完全备份脚本
rman target / <<EOF
run{
allocate channel 'dev1' type disk;
backup full tag 'dbfull_orcl' format '/u01/app/oracle/backup/fulldb_orcl%u_%p_%c'database;
sql 'alter system archive log current';
backup filesperset 3 archivelog all delete input;
release channel dev1;
}
增量备份:
0级备份脚本:
#set porfile_env
export ORACLE_SID=ora10g
# rman level0 backup
rman log='/u01/app/oracle/rmandir/log/db1_rman.log' append <<EOF
connect target /;
run
{
allocate channel c1 type disk;
backup incremental level=0 database format'/u01/app/oracle/backup/db1_level0_%U' tag='level0';
sql 'alter system archive log current';
backup archivelog all format'/u01/app/oracle/log/db1_arch_%U' delete input;
release channel c1;
}
EOF
1级备份脚本
# set porfile_env
export ORACLE_SID=ora10g
# rman level0 backup
rman log='/u01/app/oracle/rmandir/log/db1_rman.log' append <<EOF
connect target /;
run
{
allocate channel c1 type disk;
backup incremental level=1 database format '/u01/app/oracle/backup/db1_level1_%U' tag='level1';
sql 'alter system archive log current';
backup archivelog all format '/u01/app/oracle/log/db1_arch_%U' delete input;
release channel c1;
}
EOF
2级备份脚本:
# set porfile_env
export ORACLE_SID=ora10g
# rman level0 backup
rman log='/u01/app/oracle/rmandir/log/db1_rman.log' append <<EOF
connect target /;
run
{
allocate channel c1 type disk;
backup incremental level=2 database format '/u01/app/oracle/backup/db1_level2_%U' tag='level2';
sql 'alter system archive log current';
backup archivelog all format '/u01/app/oracle/log/db1_arch_%U' delete input;
release channel c1;
}
EOF
检查脚本:
export ORACLE_SID=ora10g
rman log='/u01/app//oracle/log/rmancheck.log' append <<EOF
connect target /;
run
{
# check database
backup validate check logical database;
# check backup set
restore database validate check logical;
}
EOF
删除过期备份文件脚本:
export ORACLE_SID=ora10g
rman log='/u01/app/oracle/log/rmandelset.log' append <<EOF
connect target /;
run
{
delete noprompt obsolete;
}
EOF
4 设置系统自动备份参数:
man增量备份计划,把用到的脚本贴出来,方便以后查找!
crontab 自动计划。设置自动执行计划,在rman初始化环境里面,打开自动备份控制文件功能
#crontab -e
0 1 * * 0 su – oracle -c /xxx/rmanlevel0.sh
//每周日1:00执行0级备份
0 1 * * 1-3,5-6 su – oracle -c /xxx/rmanlevel2.sh
//每周一至周三,周五至周六1:00执行2级增量备份
0 1 * * 4 su – oracle -c /xxx/rmanlevel1.sh
//每周四1:00执行1级增量备份
0 18 * * 6 su - oracle -c /xxx/rmancheck.sh
//每周六16点执行检测
0 18 * * 0 su – oracle –c /xxx/rman_delete.sh
//每周日18:00删除过期的的备份数据