ORCLE RMAN备份脚本
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<
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< 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下备份需要添加定时任务