Rotar el listener sin pararlo

Hoy vamos a ver una entrada de dummy pero de mucha utilidad.

Habitualmente, el log del listener crece de manera descontrolada y solemos tener problemas a la hora de borrarlo. No podemos detener el listener,por que cortaríamos el servicio, y tampoco podemos borrar el fichero del log por que está en uso.
¿Que hacemos entonces?

La solución es bien sencilla, simplemente dejamos de logar, vaciamos y volveos a logar.
Lo primero que hemos de hacer es conectarnos desde linea de comandos al listener, lo que vamos ha hacer es:

  • Comprobar si estamos logando
  • Mirar cual es el log
  • Mirar cual es el directorio de trazas

La salida de los comandos será:

oracle@server : lsnrctl
LSNRCTL> show log_status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
LISTENER parameter "log_status" set to ON
The command completed successfully
LSNRCTL> show log_file
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
LISTENER parameter "log_file" set to /u01/app/oracle/diag/tnslsnr/server/listener/alert/log.xml
The command completed successfully
LSNRCTL> show trc_directory
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
LISTENER parameter "trc_directory" set to /u01/app/oracle/diag/tnslsnr/server/listener/trace
The command completed successfully
LSNRCTL> set log_status off

En otra ventana, iremos al directorio de tazas y borraremos o moveremos las trazas que nos molestan
Una vez eliminados, solamente hemos de volver a activar el log

LSNRCTL> set log_status on;
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
LISTENER parameter "log_status" set to ON
The command completed successfully
LSNRCTL> show log_status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
LISTENER parameter "log_status" set to ON
The command completed successfully
LSNRCTL>