jueves, 19 de agosto de 2010

Script - Backup_frio_local

El script backup_frio_local.sh se ha de llamar con los parámetros:

backup_frio_local.sh SID_BBDD DIR_DESTINO

Donde

SID_BBDD es el SID de la base de datos Oracle a copiar.
DIR_DESTINO es el directorio destino del backup (ej. /u01/backups) donde se almacenará el backup comprimido de la base de datos.

Este script corresponde a lo que Oracle denomina "user-managed" backups.

Se trata de un backup en FRIO, es decir, se deben cerrar los ficheros de base de datos y eliminar la instancia (bajar la base de datos) para poder hacer el backup.


. $HOME/.profile

# SOLO TENDREMOS 2 PARAMETROS, SID Y DEST

SID=$1
DEST=$2

MES=`date +%m`; export MES
DIA=`date +%d`; export DIA
ANO=`date +%Y`; export ANO
FECHA=$ANO$MES$DIA

#BORRAMOS EL BACKUP PREVIO

touch /tmp/pru_borrar
/bin/rm /tmp/pru_borrar $DEST/*.Z

#GENERAMOS LA LISTA DE DATAFILES QUE TENEMOS QUE COPIAR

cd $HOME/backup_frio
ORACLE_SID=$SID
export ORACLE_SID;
$ORACLE_HOME/bin/sqlplus -s / as sysdba << EOF
set heading off;
set feedback off;
spool logs/DF-$SID-$FECHA.txt
select file_name from dba_data_files;
select member from v\$logfile;
select name from v\$tempfile;
select name from v\$controlfile;
spool off;
spool logs/UDUMP-$SID-$FECHA.txt
select value from V\$parameter where name='user_dump_dest';
spool off;
alter database backup controlfile to trace;
exit
EOF

#Depuramos los ficheros, quitandole las lineas en blanco

cat logs/DF-$SID-$FECHA.txt |grep "/" > logs/DF-$SID-$FECHA-1.txt
mv logs/DF-$SID-$FECHA-1.txt logs/DF-$SID-$FECHA.txt

#Estas lineas son para copiar el fichero de control en formato ascii

cat logs/UDUMP-$SID-$FECHA.txt |grep "/" > logs/UDUMP-$SID-$FECHA-1.txt
mv logs/UDUMP-$SID-$FECHA-1.txt logs/UDUMP-$SID-$FECHA.txt

#Bajamos la BBDD

$ORACLE_HOME/bin/sqlplus -s / as sysdba << EOF
shutdown immediate;
exit
EOF

#Realizamos la copia al directorio especificado

for j in `cat logs/DF-$SID-$FECHA.txt`
do
cp $j $DEST
done

#Copiamos el fichero init y/o spfile

cat $ORACLE_HOME/dbs/init$SID.ora > $DEST/init$SID.ora
cp $ORACLE_HOME/dbs/spfile$SID.ora $DEST/spfile$SID.ora

#Ahora copiamos las ultimas traza de bbdd para llevarnos el fichero de control en ascii

cd `cat logs/UDUMP-$SID-$FECHA.txt`
tar -cvf UDUMP-$SID-$FECHA.tar `find . -type f -mtime 0`
mv UDUMP-$SID-$FECHA.tar $DEST

#Subimos la BBDD

$ORACLE_HOME/bin/sqlplus -s / as sysdba << EOF
startup;
exit
EOF

# COMPRESION COPIA
for j in `ls $DEST/*.tar $DEST/*.ora $DEST/*.ctl $DEST/*.dbf`
do
compress -f $j
done



No hay comentarios:

Publicar un comentario