1 auto_backup.sh 这是主程序,程序中需要调用下边的连个rman脚本。这三个脚本都要放在对应的文件夹下。 # Backup Oracle database ############# # Variables # ############# src_folder=/app/opt/oracle/home/scripts log_folder=/app/opt/oracle/home/scripts export ORACLE_SID=ORCL #Not needed if ORACLE_SID is specified in .bash_profile. export ORACLE_HOME=/app/opt/oracle/product/10.2.0 cut_line="*************************************************" ############# # Functions # ############# #Run the rman-bkup.rcv script to start back up process. backup(){ echo `date +"%y-%m-%d %H:%M:%S"`" Begin to backup:"${cut_line} rman nocatalog CMDFILE=${src_folder}/rman-bkup.rcv } #Run the rman-clnup.rcv script to start clean up process. cleanup(){ echo `date +"%y-%m-%d %H:%M:%S"`" Begin to cleanup:"${cut_line} rman nocatalog CMDFILE=${src_folder}/rman-clnup.rcv } # Add required directories to PATH addPath(){ dir=$ORACLE_HOME/bin/ case "${PATH}" in ${dir}:*|*:${dir}:*|*:${dir}) ;; *) PATH=${PATH}:${dir} ;; esac echo PATH:${PATH} } ############## # Mainline # ############## # User-id Verification case "`whoami`" in root|oracle) ;; *) echo "ERROR: Must be user oracle or root to run this program..." exit 1 ;; esac #Add path. addPath #Print info. echo `date +"%y-%m-%d %H:%M:%S"`":Begin to backup database $ORACLE_SID ${cut_line}"|tee -a ${log_folder}/auto_backup.log #Begin to backup. backup|tee -a ${log_folder}/auto_backup.log #Begin to clean up. cleanup|tee -a ${log_folder}/auto_backup.log 2 rman-bkup.rcv # # Filename: rman-bkup.rcv # # Description: # RMAN script to perform full backup for specified database. # connect target /; SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT'; backup as compressed backupset database plus archivelog; 3 rman-clnup.rcv # # Filename: rman-clnup.rcv # # Description: # RMAN script to perform archived file cleanup for specified database. # connect target /; report obsolete; crosscheck backupset; crosscheck archivelog all; delete obsolete;