Sidebar

Este script es muy útil cuando se requiere realizar una copia de la base de datos a otro servidor.

 

La manera de utilizar este script es escribiendo la fecha y hora en que se quiere restaurar la base de datos con el formato 'YYYYMMDD HH:MM:SS'

Por ejemplo si queremos restaurar un respaldo al día 1 de mayo a las 9:25:07 se ejecutaría de la siguiente manera:

rman_scp '20120501 09:25:07'

El script pasaría los archivos necesario para realizar el restore en el servidor a donde se realiza la copia. Los único que tendrían que cambiar del script son las rutas. Es posible modificarlo para pasarle como parámetro las rutas y el servidor destino.

export NLS_DATE_FORMAT='dd-MON-YYYY hh24:mi:ss';

# Ruta a donde deja el archivo que se va a utilizar por el script
INFILE="/sbclocal/app/oracle/rman_scp_out.txt"
OUTFILE=writefile.out
THIS_SCRIPT=$(basename $0)

function lee_salida
{
# Zero out the $OUTFILE

>$OUTFILE

# Associate standard output with file descriptor 4
# and redirect standard output to $OUTFILE

#exec 4<&1
#exec 1> $OUTFILE

while read LINE
do
echo "$LINE" | grep /app | awk  '{print $1}' \
| while read UNO
do
if [ $UNO = Piece ]
then
BACKUPSET=$(echo "$LINE" | awk '{print $3}')

#Ruta del servidor a donde se van a copar los archivos

echo "SCP $BACKUPSET server1:/db/dump/instancia/dumprman"

scp $BACKUPSET server1:/db/dump/instancia/dumprman/deprod
else
ARCHIVE=$(echo "$LINE" | awk '{print $7}')
echo "SCP $ARCHIVE server1:/db/instancia/LUMINAD3/dumprman"
scp $ARCHIVE server1r:/db/instancia/dumprman/deprod
fi
done
done < $INFILE

# Restore standard output and close file
# descriptor 4

#exec 1<&4
#exec 4>&-
}

######################################
########### START OF MAIN ############
######################################

echo "Inicia copia a servidor X-->/db/dump/instancia/dumprman/deprod"
> /sbclocal/app/oracle/rman_scp_out.txt
rman target / < /sbclocal/app/oracle/rman_scp_out.txt
run {
RESTORE DATABASE UNTIL TIME "to_date('$1','YYYYMMDD HH24:MI:SS')" preview;
}
exit;
EOF

rman target / /sbclocal/app/oracle/ubsdriver/oracle/rman_scp_out.txt
LIST BACKUP OF CONTROLFILE COMPLETED AFTER 'SYSDATE-1';
exit;
EOF
lee_salida


Tips BD