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