lunes, 6 de agosto de 2012

Script - Migración Export Import mediante tuberías y scp

Script útil para migraciones entre distintas versiones Oracle y/o cargas de datos, basado en export/import tradicional, mediante tuberías tipo pipe y scp.

La ventaja de este script es que no utiliza espacio para los ficheros de export (va todo a través de la tuberías pipe) y que se lanza desde el servidor destino de la copia, sólo requiere acceso "scp" sin password (authorized_keys).


SID=$1
IP=$2
USRSSH=$3
SID2=$4

ssh $USRSSH@$IP ". \$HOME/.profile;. \$HOME/.bash_profile;rm /tmp/tmp_exports_$SID;mknod /tmp/tmp_exports_$SID p;sleep 5;export ORACLE_SID=$SID;exp userid=\'sys/sys AS SYSDBA\' file=/tmp/tmp_exports_$SID rows=y full=y consistent=y log=/tmp/tmp_exports_$SID.log" &
rm /tmp/tmp_exports_$SID2
mknod /tmp/tmp_exports_$SID2 p
ssh $USRSSH@$IP ". \$HOME/.profile;. \$HOME/.bash_profile;cat /tmp/tmp_exports_$SID" > /tmp/tmp_exports_$SID2 &
export ORACLE_SID=$SID2
imp userid=\'sys/sys AS SYSDBA\' file=/tmp/tmp_exports_$SID2 full=y ignore=y

-- Ejemplo:

./export_import_full.sh SID_ORIG 192.168.0.1 oracle SID_DEST

Se irá generando un export full de la instancia SID_ORIG ubicada en el servidor 192.168.0.1, al que se accede con el usuario "oracle" (usuario de instalación oracle con .profile o .bash_profile con las variables de entorno Oracle configuradas).
Este export se irá importando a través del paso por 2 tuberias pipe (ficheros tmp_exports_$SID y tmp_exports_$SID2) sobre la instancia SID_DEST ubicada en el servidor desde el que estemos lanzando el script y al que estamos conectado con el usuario de instalación oracle con las variables de entorno Oracle configuradas.

No hay comentarios:

Publicar un comentario