Created
July 24, 2012 13:31
-
-
Save iacosta/3169928 to your computer and use it in GitHub Desktop.
Datapump.sh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Script de copias de seguridad (DATAPUMP) Base de datos | |
# Autor = IVAN ACOSTA | |
export PATH=$PATH:/usr/local/bin:/bin:/usr/bin | |
echo "***********************************************" | |
echo "*Backup Database Inicializando *" | |
echo "***********************************************" | |
echo "Fecha:`date "+%Y-%m-%d %k:%M:%S"` ............." | |
echo "***********************************************" | |
echo "***********************************************" | |
echo "* Verifica la disponibilidad de los SID's *" | |
echo "***********************************************" | |
# Verifica el parametro recibido debe ser igual que el ORACLE_SID | |
if [[ $# -eq 0 ]] | |
then | |
echo "Database name argument is missing" | |
exit 1 | |
fi | |
export ORA_SID_LOWER=`/bin/echo $1 | /usr/bin/tr "[:upper:]" "[:lower:]"` | |
export ORA_SID_UPPER=`/bin/echo $1 | /usr/bin/tr "[:lower:]" "[:upper:]" ` | |
export ORA_INSTANCE=$ORA_SID_UPPER | |
# Verifica la disponibilidad de la Base de datos. | |
DBVERIFY=`ps -ef | grep ora_pmon_$ORA_SID_UPPER | grep -v 'grep' | wc -l` | |
if [ $DBVERIFY = "0" ]; then | |
echo "Base de datos con nombre $ORA_SID_UPPER no esta arriba" | |
exit 1 | |
else | |
echo "Base de datos con nombre $ORA_SID_UPPER se encuentra arriba" | |
fi | |
echo "================================================" | |
echo "***********************************************" | |
echo "* Exporta Variables de Entorno ............ *" | |
echo "***********************************************" | |
export NLS_LANG="AMERICAN_AMERICA.AL32UTF8" | |
export BACKUP_HOME=/home/oracle/rman_backup_scripts | |
export DMP_HOME="/u03/oradata/datapump/$ORACLE_SID" | |
export ORACLE_HOME=/u01/app/oracle/product/11.2.0 | |
ORAENV_ASK=NO; export ORAENV_ASK | |
ORACLE_SID=$ORA_INSTANCE; export ORACLE_SID | |
echo $ORACLE_SID | |
source /usr/local/bin/oraenv | |
export WEEKDAY=`/bin/date +%A` | |
export WEEKDAY=`/bin/echo $WEEKDAY | /usr/bin/tr "[:lower:]" "[:upper:]" ` | |
find ${DMP_HOME} -mtime +1 -name "*.dmp" -exec rm -Rf {} \; | |
find ${DMP_HOME} -mtime +1 -name "*.log" -exec rm -Rf {} \; | |
export NLS_LANG="LATIN AMERICAN SPANISH_AMERICA.WE8ISO8859P1" | |
export FECHA=`date +%Y-%m-%d_%H-%M-%S` | |
echo "================================================" | |
echo "== Inicio del Proceso..........................=" | |
echo "================================================" | |
echo "***********************************************" | |
expdp system/${PTB}${PTA}${PTC} parfile=$BACKUP_HOME/parfile directory=DATA_PUMP_DIR dumpfile=dump_${ORACLE_SID}_${WEEKDAY}.dmp logfile=${ORACLE_SID}_${WEEKDAY}.log | |
echo "**Proceso Finalizado .....................OK..*" | |
echo "***********************************************" | |
echo "================================================" | |
echo "== Copia a NFS (dmp y log).....................=" | |
echo "================================================" | |
echo "***********************************************" | |
export BACKUP_2="/backups" | |
sudo mount -t nfs server_nfs:/Backup/server_database/${ORACLE_SID} $BACKUP_2 | |
find ${BACKUP_2} -mtime +2 -name "*.dmp" -exec rm -Rf {} \; | |
find ${BACKUP_2} -mtime +2 -name "*.log" -exec rm -Rf {} \; | |
export DB_PATH=$(sqlplus -s /nolog <<EOF | |
conn / as sysdba | |
set head off pagesize 0 feedback off linesize 200 | |
whenever sqlerror exit 1 | |
SELECT directory_path FROM DBA_DIRECTORIES where directory_name like '%DATA_PUMP%'; | |
EOF) | |
cp ${DB_PATH}/dump_${ORACLE_SID}_${WEEKDAY}.dmp ${BACKUP_2} | |
cp ${DB_PATH}/${ORACLE_SID}_${WEEKDAY}.log ${BACKUP_2} | |
sudo umount -t nfs server_nfs:/Backup/server_database/${ORACLE_SID} $BACKUP_2 | |
echo "**Proceso Finalizado .....................OK..*" | |
echo "***********************************************" | |
echo "***********************************************" | |
echo "**Enviando email .............................*" | |
mutt -s "Informe Datapump ${ORACLE_SID}" -a /u03/oradata/datapump/${ORACLE_SID}/${ORACLE_SID}_${WEEKDAY}.log email@dominio.com < $ORACLE_HOME/scripts/correo_body.txt | |
echo "** Proceso Finalizado .....................OK.*" | |
echo "***********************************************" | |
echo "================================================" | |
echo "== Fin del Proceso.............................=" | |
echo "================================================" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment