En muchas ocasiones tenemos configurado una StandBy en modo manual y requerimos enviar los archive log de la base de producción a la base de datos de contingencia.
Esta es una manera práctica de como realizar ese proceso. Para ello necesitas agregar en el archivo /etc/hosts, la dirección IP y alias del servidor a donde quieres transferir los datos.
En este ejemplo utilizo el comando “rcp” de linux, pero pueden utilizar el utilitario de su preferencia, nada más hacen los ajustes en el script respectivo.
Como a la hora de realizar el respaldo, podría estarse llenando el último archive, vamos a generar una lista dinámica de los archives existentes en el directorio definido para la generación de los mismos y vamos a extraer los nombres de los archivos, tomando en cuenta para ello un ordenamiento basado en la hora y fecha de creación.
Así, si aplicamos el concepto del conteo de archivos ordenados por fecha y hora de creación menos uno, vamos a eliminar de la lista de archivos a transferir al último.
En el script “MORFEO” es el alias del servidor a donde vamos a copiar los archivos de origen.
copy_archives.sh
#!/bin/ksh
# Autor: Ronald Vargas Quesada
# Fecha: 2005 – 2009
# ronald.vargas.quesada@gmail.com
ARCH_DIR=MORFEO:/oracle/archive/MORFEO
COUNTER=`rsh MORFEO ls -la /oracle/archive/MORFEOR/*.arc wc -l`
MENOS=1
COUNT=`expr $COUNTER - $MENOS`
echo "Cantidad de archivos existentes en el directorio $ARCH_DIR files:$COUNTER"
echo "Archivos por copiar $COUNT"
if [ "$COUNT" > 1 ]; then
rsh MORFEO ls -lt /oracle/archive/MORFEO/*.arc tail -$COUNT awk '{print $9}' >copies_archive.lst
fi
/home/oracle/scripts/ejecutar_copia.sh
En este archivo se crea en forma dinámica el archivo de “comando.sh” que al final es quién copia los archivos al servidor de destino.
También definidos el comando “empacar.sh”, para dejar comprimidos los archivos hasta que sean reutilizados y así poder contar con mayor espacio en el servidor de destino.
ejecutar_copia.sh
# Autor: Ronald Vargas Quesada
# Fecha: 2005 – 2009
# ronald.vargas.quesada@gmail.com
FILES="/home/oracle/scripts/copies_archive.lst"
for lista in $FILES
do
cat $FILES awk '{ print "rcp MORFEO:" $1 " /oracle/archive/MORFEO" }' > /home/oracle/scripts/comando.sh
done
chmod 700 /home/oracle/scripts/comando.sh
/home/oracle/scripts/comando.sh
rm /home/oracle/scripts/comando.sh
cat $FILES awk '{ print "rsh morfeo gzip " $1}' > /home/oracle/scripts/empacar.sh
chmod 700 /home/oracle/scripts/empacar.sh
/home/oracle/scripts/empacar.sh
rm /home/oracle/scripts/empacar.sh
No hay comentarios:
Publicar un comentario
Te agradezco tus comentarios. Te esperamos de vuelta.