Limpeza do log do listener

Na administração de grandes ambientes OLTP é comum nos depararmos com grandes log de listener que pode impactar em espaço em disco, em alguns casos é impossível abrir o log de tão grande que o mesmo se encontra.

Porém, como realizar uma manutenção para limpeza destes logs em ambientes 24x7 onde não temos a possibilidade de realizar uma parada do ambiente?

O primeiro passo é identificar o log do listener, que por padrão encontra-se em $ORACLE_HOME/network/admin/listener.log na versão 11g ou em $ORACLE_HOME/network/log/listener.log na versão 10g. Outro método bastante fácil para localizar é verificando o status do listener através do comando lsnrctl status.
Banco=teste-> lsnrctl status

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 23-DEC-2014 15:43:23

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=teste)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date                14-AUG-2014 18:44:45
Uptime                    130 days 19 hr. 58 min. 37 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /orahmg01/app/oracle/product/11.2.0/dbhome_2/network/admin/listener.ora
Listener Log File         /orahmg01/app/oracle/diag/tnslsnr/teste/listener/alert/log.xml
Para desabilitar a gravação, basta executar o comando lsnrcl set log_status off
Banco=teste-> lsnrctl set log_status off

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 23-DEC-2014 15:49:07

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=teste)(PORT=1521)))
LISTENER parameter "log_status" set to OFF
The command completed successfully
Banco=teste->
Após realizar o processo acima, podemos realizar o processo de limpeza, seja apagando, renomeando ou movendo o arquivo. Por precaução recomendo sempre manter uma cópia compactada do último mês, porém a politica de retenção pode ser definida de acordo com sua necessidade.

No meu exemplo, estarei apenas renomeando o log:
Banco=teste-> ls -ltr
total 32
drwxr-xr-x 2 oracle oinstall 4096 Oct 14  2013 samples
-rw-r--r-- 1 oracle oinstall  205 Oct 14  2013 shrept.lst
-rw-r--r-- 1 oracle oinstall  804 Oct  9 11:09 listener.ora
-rw-r--r-- 1 oracle oinstall   46 Oct  9 11:09 sqlnet.ora
-rw-r--r-- 1 oracle oinstall 7266 Oct  9 11:09 tnsnames.ora
Banco=teste->
Banco=teste->
Banco=teste-> mv listener.ora listener.23122014
Banco=teste-> ls -ltr
total 32
drwxr-xr-x 2 oracle oinstall 4096 Oct 14  2013 samples

-rw-r--r-- 1 oracle oinstall  205 Oct 14  2013 shrept.lst
-rw-r--r-- 1 oracle oinstall  804 Oct  9 11:09 listener.23122014
-rw-r--r-- 1 oracle oinstall   46 Oct  9 11:09 sqlnet.ora
-rw-r--r-- 1 oracle oinstall 7266 Oct  9 11:09 tnsnames.ora
Banco=teste->
Após o processo basta apenas ativar a gravação do arquivo com o comando lsnrctl set log_status on que um novo arquivo listener.log será gerado.
Banco=teste lsnrctl set log_status on

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 23-DEC-2014 16:02:25

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=teste)(HOST=)(PORT=1521))
LISTENER parameter "log_status" set to ON
The command completed successfully
Banco=teste

Banco=hmgb-> ls -ltr
total 32
drwxr-xr-x 2 oracle oinstall 4096 Oct 14  2013 samples
-rw-r--r-- 1 oracle oinstall  205 Oct 14  2013 shrept.lst
-rw-r--r-- 1 oracle oinstall  804 Oct  9 11:09 listener.23122014
-rw-r--r-- 1 oracle oinstall   46 Oct  9 11:09 sqlnet.ora
-rw-r--r-- 1 oracle oinstall 7266 Oct  9 11:09 tnsnames.ora
-rw-r--r-- 1 oracle oinstall    0 Dec 23 16:02 listener.ora
Este é um processo bastante simples que não causa impacto no ambiente e pode liberar um bom espaço em disco, dependendo do tamanho do log atual do listener.

Comentários