1、Linux下oracle备份脚本
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export PATH=$PATH:$ORACLE_HOME/bin:
export NLS_LANG=AMERICAN_AMERICA.zhs16gbk
export ORACLE_SID=orcl
rman target / nocatalog log=/tmp/rman_full.log append<<EOF
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
backup filesperset 3 database format '/oracle/backup/full_%d_%T_%s_%p';
sql 'alter system archive log current';
sql 'alter system archive log current';
sql 'alter system archive log current';
backup archivelog all format '/oracle/backup/arch_%d_%T_%s_%p' delete input;
backup current controlfile format '/oracle/backup/ctl_%d_%T_%s_%p';
}
EOF
Linux下删除过期备份的脚本
rman target / nocatalog log=/tmp/rman_delete.log append<<EOF
run{
allocate channel for maintenance type disk;
crosscheck backup;
crosscheck archivelog all;
delete noprompt archivelog until time 'sysdate-1';
delete noprompt obsolete;
}
EOF
注:将脚本添加到crontab中定时执行即可。
2、windows下ORACLE备份脚本
全库备份脚本full_backup.txt
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
backup filesperset 2 database format 'd:\u01\rman\full_%d_%T_%s_%p';
sql 'alter system archive log current';
sql 'alter system archive log current';
sql 'alter system archive log current';
backup archivelog all format 'd:\u01\rman\arch_%d_%T_%s_%p' delete input;
backup current controlfile format 'd:\u01\rman\ctl_%d_%T_%s_%p';
backup spfile format 'd:\u01\rman\spfile_%d_%T_%s_%p';
}
exit
全库备份可执行脚本full_backup.bat
rman target / nocatalog log=d:\u01\rman.log append CMDFILE 'd:\u01\full_backup.txt';
归档日志备份脚本log_backup.txt
run{
backup archivelog all format 'd:\u01\rman\arch_%d_%T_%s_%p' delete input;
}
exit
删除过期备份脚本delete_obsolete.txt
run{
crosscheck backup;
crosscheck archivelog all;
delete noprompt archivelog until time 'sysdate-1';
delete noprompt obsolete;
}
exit
注:windows下备份需要添加定时任务