Leonardo Pedroso Costa
MongoDB | SQL Server | Oracle

Limpeza/Purge de logs com ADRCI

Os logs do Oracle são salvos em sua grande maioria no arquivo alert.log! Com o passar do tempo esse arquivo vai acumulando informações e se torna muito grande,  dificultando sua leitura e compreensão não hora do troubleshooting. Já tive arquivos na casa dos GB e a melhor alternativa era copia-lo para a Área de Trabalho e editar com o notepad++.

Para limpar os arquivos de logs podemos utilizar o utilitário ADRCI. Com o usuário Oracle logado digite o seguinte comando:

[code lang=”sql”]
adrci
[/code]
Você receberá uma mensagem semelhante á essa:
[code lang=”sql”]
ADRCI: Release 12.1.0.1.0 – Production on Wed Dec 21 21:30:43 2016
Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.
ADR base = "/u01/app/oracle"
[/code]
Em seguida digite show homes e espera o S.O. listar os homes de cada log gerenciado:
[code lang=”sql”]
adrci> show homes;

ADR Homes:
diag/tnslsnr/server01/listener_scan4
diag/tnslsnr/server01/listener_scan1
diag/tnslsnr/server01/vs01
diag/tnslsnr/server01/listener_scan3
diag/asmtool/user_root/host_954678459_80
diag/rdbms/vs22/vs22
[/code]

Agora é preciso setar o homepath de qual arquivo você vai limpar. Para escolher o alert log digite no sqlplus:
[code lang=”sql”]
show parameter user_dump_dest
user_dump_dest string /u01/app/oracle/diag/rdbms/<strong>vs22/vs22/trace
[/code]
Com base na informação acima, sabemos que o homepath do alert.log é o diag/rdbms/vs22/vs22!
[code lang=”sql”]
set homepath diag/rdbms/vs22/vs22
[/code]
Depois de setar o homepath basta digitar o comando agora para limpar as entradas no alert.log, sendo que 1440 é referente á 1 dia (1440 minutos).
[code lang=”sql”]
PURGE -age 1440 -type ALERT
[/code]
Geralmente deixo os últimos 30 dias de logs para consulta, sendo assim ficaria 1440 x 30 = 43200:
[code lang=”sql”]
PURGE -age 43200 -type ALERT
[/code]
Feito isso o alert.log será limpo de acordo com o tempo que você desejar. É interessante criar uma rotina de expurgo para evitar fazer o serviço manualmente e por ventura esquecer de realizá-la periodicamente.

Alguns arquivos de AUDITORIA, cuja extensão é .aud são gerados constantemente no caminho informado no parâmetro: audit_file_dest ! Uma maneira simples de limpar esses arquivos é com o comando FIND, pois o rm -rf *.aud estoura a lista de argumentos do S.O. não permitindo a exclusão por inteiro. Abaixo segue o script que utilizo para limpar as pastas de audit:

[code lang=”sql”]
find /u01/app/oracle/admin/vs25/adump -name ‘*.aud’ -mtime +60 -exec rm -f {} \;
[/code]

Até a próxima

Leonardo Pedroso

Leonardo Pedroso

Profissional de TI experiência em administração de banco de dados: SQL Server 2000 a 2019, Oracle 11g a 19c, PostgreSQL, MySQL, MongoDB, Cassandra. Atua realizando análise de desempenho, DR e HA, implantação, administração de banco de dados em cluster e implementação de projetos de banco de dados NoSQL (MongoDB, Cassandra), bem como automação de processos utilizando Shell script, Powershell (dbatools), e players de Cloud: Azure e Aws.