#!/bin/bash # ================================================== # Nom : sauve_backup.sh # Objet : sauvegarde RMAN d'une base complete # Auteur : S. GOURGAND - DIGORA # Cree le : 28/01/2010 # Syntaxe : sauve_backup.sh database_name # ==================================================
# ---------------------------------- # Fonction d'affichage de la syntaxe # ---------------------------------- syntaxe() { echo "Usage : $0 database_name" }
# -------------------------- # Verification de la syntaxe # -------------------------- if [ $# -ne 1 ] then echo "==================================================" echo "ERREUR : Nombre d'arguments incorrects !" syntaxe echo "==================================================" exit 1 fi
# -------------------------- # Verification des arguments # -------------------------- w_instance=$1 [ "${HOSTNAME}" = "king" -o "${HOSTNAME}" = "king.faiveley.com" ] && w_num=1 [ "${HOSTNAME}" = "kong" -o "${HOSTNAME}" = "kong.faiveley.com" ] && w_num=2 [ "${HOSTNAME}" = "ping" -o "${HOSTNAME}" = "ping.faiveleytransport.local" ] && w_num=3 [ "${HOSTNAME}" = "pong" -o "${HOSTNAME}" = "pong.faiveleytransport.local" ] && w_num=4 v_res=`grep "${w_instance}${w_num}:" /etc/oratab | wc -l` v_res=`expr ${v_res}` if [ ${v_res} -eq 0 ] then echo "==================================================" echo "ERREUR : Base de donnees [${w_instance}] inexistante !" syntaxe echo "==================================================" exit 1 fi
export ORACLE_SID=${w_instance}${w_num} echo instance : ${ORACLE_SID} # export NLS_DATE_FORMAT=YYYY.MM.DD.HH24.MI.SS export NLS_DATE_FORMAT="DD/MM/YYYY HH24:MI:SS"
w_prog=`basename $0 .sh` w_date=$(date '+%Y_%m_%d_%H_%M_%S')
w_log_dest=/exploit/logs w_log_file=$w_log_dest/${w_date}_${w_prog}_${w_instance}.log;
rman <<EORMAN >${w_log_file} 2>&1 connect target / ;
crosscheck backup; crosscheck archivelog all; delete noprompt expired backup; delete noprompt expired archivelog all; delete noprompt obsolete;
backup incremental level 0 tag 'database level 0' database plus archivelog tag 'archives level 0'; delete noprompt obsolete;
report need backup; list backup summary;
exit EORMAN
# Ajout 08/04/2010 : Envoi du fichier de traces par mail # ------------------------------------------------------ w_host=`basename $HOSTNAME .faiveley.com` w_host=`basename ${w_host} .faiveleytransport.local | tr [a-z] [A-Z]` mail -s "${w_host} : Hot Backup Database ${w_instance}" nicolas.lamotte@faiveleytransport.com <${w_log_file}
# Ajout 31/03/2011 : Traitement des anomalies pour VTOM # ----------------------------------------------------- v_res=`grep "^RMAN-" ${w_log_file} | wc -l` v_res=`expr ${v_res}` if [ ${v_res} -gt 0 ] then echo +----------------------------+ echo ! DEBUT DU FICHIER DE TRACES ! echo +----------------------------+ cat ${w_log_file} echo +--------------------------+ echo ! FIN DU FICHIER DE TRACES ! echo +--------------------------+ exit 1 else exit 0 fi