bash scripts – Delete archivelog

Les paso un script en bash que utizo para hacer una depuración diaria de los archives de la base.

Recordemos siempre tener un backup de los archive por si tenemos que volver en el tiempo.

Esto lo podemos ejecutar desde una rutina diaria desde alguna consola que interprete bash o por cron para los que no poseen esta opción.

ATENCION: Recuerden siempre hacer una prueba en un ambiente copia de producción y adecuarlo a las necesidades de cada uno, una vez que logramos lo que queremos o necesitamos, y verificando que no ocacionara problemas lo pasamos a producción.

#!/bin/bash
#========================================================================================
#                           BACKUP DIARIO HOT ARCHIVELOGS                               =
#                                                                                       =
# Ejecuta un delete de los archivelogs de la base.                                      =
# Dejando los archivos de backup y su log en PATH                                       =
#                                                                                       =
# Nomenclatura de archivos AAAAMMDD_BASE_PRE_DBID########_seq_pieza_tipoarch            =
# Nomenclatura TAG RMAN :  DB_ARC_DELETE_PRE_COB_AAAAMMDD.HHMM                          =
#                                                                                       =
# Ejecución: ./DEL_ARCH_RMAN.sh {NOMBRE DE BASE}                                        =
# Auth: Juan Andrés Mercado                                                             =
#========================================================================================

BASE=$1 #le pasamos como parametro el nombre de la base que usamos en las variables.
HOME_ENV=/home/oracle/bin # Path donde almacenamos las variables de ambiente de cada home

# configura las variables de ambiente
. ${HOME_ENV}/{BASE}.sh

#Exporta variables
HOMELOG=/home/oracle/log/diario
DATE_A=`date --date='2 hour ago' +"%Y-%m-%d %H:%M:%S"`
TAG=DB_ARC_DELETE_$(date +"%Y%m%d.%H%M")
RCV_RMAN=/home/oracle/parameter/diario/rman$(date +"%Y%m%d.%H%M").rcv

#========================================================================
# Ejecución de las funciones
#
#========================================================================

function script_rman(){
echo 'connect catalog rman/******@catrman'      >> ${RCV_RMAN}
#echo 'crosscheck archivelog all;'               >> ${RCV_RMAN}
echo " delete archivelog until time \"to_date('${DATE_A}','YYYY-MM-DD:HH24:MI:SS')\"; " >> ${RCV_RMAN}
#echo 'YES' >> ${RCV_RMAN}
echo 'quit;' >> ${RCV_RMAN}
}

function cross_rman(){
echo 'connect catalog rman/cadorna@catrman'      >> ${RCV_RMAN}
echo 'crosscheck archivelog all;'                >> ${RCV_RMAN}
echo 'quit;' >> ${RCV_RMAN}
}

function purga(){
echo ' '  > ${RCV_RMAN}
}

function cmd_rman(){
rman target / LOG=$HOMELOG/$TAG.log CMDFILE ${RCV_RMAN}
}

script_rman
cmd_rman
purga

About Juan Andres
Consultant | Oracle DBA & IT Specialist | LinuxUnix Administrator | Father | Musician | Farmer | Environmentalist | Writer | Builder | Buenos Aires · burzaco.wordpress.com

Comments are closed.

%d bloggers like this: