Script del archivo 1 (backup1.bat):
#!/bin/bash
###########################################################
## Script para realizar backup Oracle
## ver 1.0
## Alex Echavarría
###########################################################
XBACKUP="/backups/oracle"
XDIA=`date +'%Y%m%d-%H%M'`
XDIA_BACKUP=$XBACKUP/$D_DIA
XDIA_F=`date +'%d-%m-%Y %H%M'`
echo "***Proceso de Backup iniciado: " $D_DIA_F
##Creamos el directorio para realizar el backup
mkdir $XDIA_BACKUP
echo " -> Carpeta creada..."
chmod 777 $XDIA_BACKUP
echo " -> Generando backup..."
##Seteamos variables de Entorno
export ORACLE_SID=nombre_instancia_oracle
export ORACLE_HOME=/usr/app/oracle/product/11.1.0/db_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_OWNER=oracle
##Lanzamos exportacion de ORACLE
exp system/1234 file=$XDIA_BACKUP/archivo_data.dmp owner=pruebas, administracion, conta1, conta2 log=/tmp/export_orasite.log buffer=1000000
echo " -> Comprimiendo el Backup..."
##Comprimimos el archivo generado
gzip -8 $XDIA_BACKUP/archivo_data.dmp
echo " -> Backup Generado en " $XDIA_BACKUP
Ahora necesitamos un script para ejecutar el archivo 1 y que todas las salidas de este se guarden en un archivo log. Para esto simplemente escribimos lo siguiente:
Script del archivo 2 (backup2.bat) :
#!/bin/bash
cd /home/oracle
./backup_oracle.bat >> /tmp/oracle.log
Lo que hará el segundo script es ejecutar el bat 1 y enviar todas las salidas del mismo al archivo oracle.log.
Si consultamos el archivo podremos visualizar algo así:
Ahora que ya tenemos ambos archivos debemos ejecutarlos indicarle al S.O. que lo ejecute en las horas que nosotros deseemos, para esto utilizamos el crontab (Programador de Tareas de Linux). Este es un archivo ubicado en /etc/crontab.
Editamos el archivo con vi: # vi /etc/crontab
Y agregamos una línea como esta al final:
Donde 45 indica el minuto, y 12,18 la hora, es decir este script se ejecutará a las 12:45 pm. y a las 6:45 p.m.
Recuerden de dar permisos de ejecucion a los archivos BAT.
ResponderEliminarCada cuando se ejecutaria este script segun el codigo que tienes?? diario?? cada que se encienda la maq??
ResponderEliminarPues, en el caso de la última imagen, indica que se ejecutará diariamente, a las 12 horas y 45 minutos del día y a las 18 horas y 45 minutos del día.
ResponderEliminarBuenas esta muy bueno tu tutorial muchas gracias, dime algo esto lo puedo hacer en Suse Linux Enterprise Server?
ResponderEliminarHola Xhanoserver, claro que lo puedes hacer, linux, tiene un archivo llamado crontab, ubicado en /etc/, este archivo debes editarlo y agregar la linea indicando la hora en el formato del crontab, guardar los cambios y listo.
EliminarMas información sobre el Programador de Tareas de SUSE en http://opensuse.swerdna.org/susecron.html
hola .... disculpa una pregunta ... como puedo copiar el contenido de varios (de 3 de 4 o mas ) archivos logs .....(cuyo contenido se van modificando constantemente en el dia ) en un archivo log automaticamente en 5 minutos ,,
EliminarGracias mi amigo es una gran ayuda.... Espero cubra la necesidad que ando buscando, y cualquier novedad estaré haciendole conocer.
ResponderEliminarbuen tutorial Estimado y para importar se usa dump?
ResponderEliminarimp system/ file=/backup/backup.dmp full=yes ignore=yes
Eliminarlog=/var/log/import_log.log buffer=1000000
man y para restaurar, tengo instalado centos en vmware
ResponderEliminarhola,
ResponderEliminarsi me puedes ayuda, hice todos los pasos, pero me da este error, me falta algún permiso?
EXP-00056: ORACLE error 12546 encountered
ORA-12546: TNS:permission denied
EXP-00000: Export terminated unsuccessfully
Hola de nuevo,
ResponderEliminaralguien me puede ayudar hice todos los pasos, pero me da este error, me falta algún permiso?
EXP-00056: ORACLE error 12546 encountered
ORA-12546: TNS:permission denied
EXP-00000: Export terminated unsuccessfully
Gracias
Gracias por el tutorial. Pregunta: ¿Se debe uno autenticar con el usuario oracle en el S.O o con root?
ResponderEliminarHola Oscar, directamente con root.
Eliminar