RMAN 全备保留7天脚本参考
vi /rmanbackup/scripts/rmanbackup.sh #/bin/bash 导出 ORACLE_BASE=/u01/app/oracle 导出 ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 导出 ORACLE_OWNER=oracle 导出 ORACLE_SID=nwppdb_1 导出 ORACLE_UNQNAME=nwppdb 导出路径=/u01/app/oracle/product/11.2.0/db_1/bin:/u01/app/oracle/product/11.2.0/db_1/OPatch:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oracle/bin export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:/lib:/usr/lib export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib export NLS_LANG=AMERICAN_AMERICA。ZHS16GBK export NLS_DATE_FORMAT=“yyyy-mm-dd HH24:MI:SS” export ORACLE_PATH=/home/oracle today='date +%Y-%m-%d' #删除7天过期的 find /rmanbackup/dbbak/ -name “*full*” -mtime +7 -exec rm {} \; 找到 /rmanbackup/dbbak/ -name “*archivelog*” -mtime +7 -exec rm {} \; 找到 /rmanbackup/dbbak/ -name “controlfile*” -mtime +7 -exec rm {} \; 找到 /rmanbackup/dbbak/ -name “spfile*” -mtime +7 -exec rm {} \; #全备 rman target / nocatalog log /rmanbackup/rmanlog/rmanbk_$today.log append <<EOF run { crosscheck backup; delete noprompt expired backup; 分配通道 C1 设备类型磁盘;--maxpiecesize = 3500M 限制RMAN备份片的大小 分配通道 c2 设备类型磁盘; 分配通道 C3 设备类型磁盘; 分配通道 C4 设备类型磁盘; 备份为压缩的 backupset 格式 '/rmanbackup/dbbak/nwppdb_full_%T_%d_%s_%p_%u.dbf' 数据库加上 archivelog; sql “ALTER SYSTEM 开关日志文件”; sql “ALTER SYSTEM 开关日志文件”; sql “ALTER SYSTEM 开关日志文件”; 删除 noprompt archivelog,直到时间“sysdate-7”; 备份当前控制文件格式 '/rmanbackup/dbbak/controlfile_%T_%U_%t.crl'; 备份 SPFILE 格式 '/RMANBACKUP/DBBAK/spfile_%T_%U_%t.ora'; 释放通道C1; 释放通道C2; 发布通道C3; 发布通道C4; } exit EOF 计划任务: crontab -e 30 2 * * * /rmanbackup/scripts/rmanbackup.sh |