Limpar Log e Trace no Oracle

Começando pelo final rs…. basta executar o script abaixo com seus devidos parâmetros.

[oracle@host script]$ limpezaLogU01.sh

É necessário passar os parâmetros de instância e tempo de retenção, caso contrario ele fará a pergunta e mostrará as instâncias disponíveis , exemplo:

[oracle@host script]$ ./limpezaLogU01.sh
DEFINA INSTANCIA: ORCL

[oracle@host script]$ ./limpezaLogU01.sh ORCL
DEFINA DIAS DE RETENÇÂO: 1 | 2 | 3 | 4 …. |10|20|30

A maneira correta é passar a instância e a quantidade de dias de retenção que deseja remover. Ele executará a limpeza e vai gerar um arquivo de log:

[oracle@host script]$ ls -l *.out
-rw-rw-r– 1 oracle oracle 831 Nov 24 14:50 limpezaLogU01_host.20161124.out

[oracle@host script]$ cat limpezaLogU01_ORCL.20170316.out
INICIO DA LIMPEZA DE LOG DO SERVIDOR host /u01: 16-Mar-17*14:38:02
STATUS INICIAL DO /u01:

 Filesystem   1K-blocks  Used     Available  Use%   Mounted on
 /dev/sdb     10190136   4983692  4682156    52%    /u01

REMOVENDO TRACES MAIS ANTIGOS:

/u01/app/oracle/admin/../diag/rdbms/ORCL/trace/ORCL_ora_22992.trc 1.1K 3Mar
/u01/app/oracle/admin/../diag/rdbms/ORCL/trace/ORCL_ora_13943.trc 1.8K 3Mar
/u01/app/oracle/admin/../diag/rdbms/ORCL/trace/ORCL_ora_23624.trc 1.5K 2Mar
/u01/app/oracle/admin/../diag/rdbms/ORCL/trace/ORCL_ora_3203.trc 1.1K 3Mar
/u01/app/oracle/admin/../diag/rdbms/ORCL/trace/ORCL_ora_8082.trc 1.1K 3Mar
/u01/app/oracle/admin/../diag/rdbms/ORCL/trace/ORCL_ora_12062.trm 60 4Mar
/u01/app/oracle/admin/../diag/rdbms/ORCL/trace/ORCL_ora_9053.trm 59 3Mar
/u01/app/oracle/admin/../diag/rdbms/ORCL/trace/ORCL_ora_1929.trm 110 3Mar
/u01/app/oracle/admin/../diag/rdbms/ORCL/trace/ORCL_ora_31939.trm 60 3Mar
/u01/app/oracle/admin/../diag/rdbms/ORCL/trace/ORCL_ora_1998.trm 300 2Mar
/u01/app/oracle/admin/../diag/rdbms/ORCL/trace/ORCL_ora_25536.trm 376 3Mar

TRACES REMOVIDOS : 16-Mar-17*14:38:03

REMOVENDO ALERTS MAIS ANTIGOS:
ALERTS REMOVIDOS : 16-Mar-17*14:38:03

STATUS FINAL DO /u01:

 Filesystem   1K-blocks  Used     Available  Use%   Mounted on
 /dev/sdb     10190136   4980072  4685776    52%    /u01

FIM DA LIMPEZA DE LOG DO SERVIDOR host /u01: 16-Mar-17*14:38:03

Agora, para entender como isso acontece SCRIPT

#!/bin/bash

#################################################
# Rotina de Limpeza de Log (/u01)               #
# Servidor de Banco de Dados                    #
# Criado por Kenia Milene Galiego               #
# Data: 24/11/2016                              #
#################################################

export host=`hostname`
export DATE=`date +%Y%m%d`
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db1
export INSTANCIA=`cat /etc/oratab|egrep ':N|:Y'|grep -v \*|cut -f1 -d':'| sed 'N;s/\n/ /' `
if [ -z "$1" ] ; then
echo
echo " DEFINA INSTANCIA: $INSTANCIA "
echo
exit
fi

if [ -z "$2" ] ; then
echo
echo " DEFINA DIAS DE RETENCAO: 1 | 2 | ..... 10 | 20 | 30 "
echo
exit
fi

export ORACLE_SID=$1
export retencao=$2
export DBA=`echo $ORACLE_HOME | sed -e 's:/product/.*::g'`/admin
export SID_MIN=`echo $ORACLE_SID | tr 'A-Z' 'a-z'`
export SID_MAX=`echo $ORACLE_SID | tr 'a-z' 'A-Z'`
export LOG_FILE=/u08/app/oracle/script/limpezaLogU01_$ORACLE_SID.$DATE.out
export TRACE=$DBA/../diag/rdbms/$SID_MIN/$SID_MAX/trace/
export ALERT=$DBA/../diag/rdbms/$SID_MIN/$SID_MAX/alert/
export AUDIT=$DBA/$ORACLE_SID/adump/

## START DA LIMPEZA DE LOG /u01

echo " " > $LOG_FILE
echo " INICIO DA LIMPEZA DE LOG DO SERVIDOR $host /u01: `date +%d-%h-%y*%H:%M:%S` " >> $LOG_FILE
echo " " >> $LOG_FILE

echo " STATUS INICIAL DO /u01: " >> $LOG_FILE
df | sed '2,4 d' | head -2 >> $LOG_FILE
echo " " >> $LOG_FILE
echo " REMOVENDO TRACES MAIS ANTIGOS: " >> $LOG_FILE
find $TRACE -iname "*.trc" -mtime +$retencao -exec ls -lh {} \; | awk '{print $9 " " $5 " " $7$6 }' >> $LOG_FILE
find $TRACE -iname "*.trc" -mtime +$retencao -exec rm {} \; >> $LOG_FILE

find $TRACE -iname "*.trm" -mtime +$retencao -exec ls -lh {} \; | awk '{print $9 " " $5 " " $7$6 }' >> $LOG_FILE
find $TRACE -iname "*.trm" -mtime +$retencao -exec rm {} \; >> $LOG_FILE

find $AUDIT -iname "*.trm" -mtime +$retencao -exec ls -lh {} \; | awk '{print $9 " " $5 " " $7$6 }' >> $LOG_FILE
find $AUDIT -iname "*.trm" -mtime +$retencao -exec rm {} \; >> $LOG_FILE

echo " " >> $LOG_FILE
echo " TRACES REMOVIDOS : `date +%d-%h-%y*%H:%M:%S` " >> $LOG_FILE

echo " " >> $LOG_FILE
echo " REMOVENDO ALERTS MAIS ANTIGOS: " >> $LOG_FILE
find $ALERT -iname "*.xml" -mtime +$retencao -exec ls -lh {} \; | awk '{print $9 " " $5 " " $7$6 }' >> $LOG_FILE
find $ALERT -iname "*.xml" -mtime +$retencao -exec rm {} \; >> $LOG_FILE

find $ALERT2 -iname "*.xml" -mtime +$retencao -exec ls -lh {} \; | awk '{print $9 " " $5 " " $7$6 }' >> $LOG_FILE
find $ALERT2 -iname "*.xml" -mtime +$retencao -exec rm {} \; >> $LOG_FILE

echo " " >> $LOG_FILE
echo " ALERTS REMOVIDOS : `date +%d-%h-%y*%H:%M:%S` " >> $LOG_FILE
echo " STATUS FINAL DO /u01: " >> $LOG_FILE
df | sed '2,4 d' | head -2 >> $LOG_FILE
echo " " >> $LOG_FILE

echo " " >> $LOG_FILE
echo " FIM DA LIMPEZA DE LOG DO SERVIDOR $host /u01: `date +%d-%h-%y*%H:%M:%S` " >> $LOG_FILE
echo " " >> $LOG_FILE

Meus dois centavos !!

Kenia Milene

Interopmix 2016

​Convidamos todos a participarem do INTEROPMIX 2016.
O evento tratará de vários assuntos sobre interoperabilidade, IOT e tecnologias abertas.

O DBA Brasil não poderia ficar de fora e também estará participando com um dia inteiro de palestras sobre Bancos de Dados.

Vitor Fava, Dennes Torres, Thiago Cruz, Fabio Telles, Douglas Paiva, Juliano Atanazio e Thiago Ferreira serão alguns dos palestrantes presentes em São Paulo.

Em Curitiba teremos a participação do Milton Bastos.

Além disso teremos a gravação em São Paulo de um episódio do DatabaseCast.

Para maiores informações: http://interopmix.com.br

Sobre o DBA Brasil 1.0

Considerações do Fábio Telles (SavePoint)

Sobre o DBA Brasil 1.0

Meus dois centavos !!

Kenia Milene