Hay veces que el log del listener crece sin parar y puede llegar a pesar varios GB . Una solucion para esto es detener el listener, truncar el archivo y volver a levantarlo, pero hay veces que las base de datos son 24/7 y esta solucion no sirve .
La solucion que voy a postear es una de las muchas que encontre en este link : http://msutic.blogspot.com/2009/06/truncating-rotating-flushing.html
La solución que implemente fue en un Oracle 10.2.0.5 y consistia en crear un nuevo log para el listener por cada mes del año con el siguiente formato :listener_yyyymm.log , asi cada mes del año iba a tener su propio log.
Estos son los pasos :
1) Conectarse con el utilitario LSNRCTL y setear el listener actual (Por lo general el nombre default es LISTENER)
C:UsersJCAJ>lsnrctl
LSNRCTL> set current_listener LISTENER
Current Listener is LISTENER
2) Luego setear el logfile por le nombre que deseamos , en este caso listener_201309.log
LSNRCTL> set log_file listener_201309.log
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
LISTENER parameter «log_file» set to listener_201309.log
The command completed successfully
3 ) Con lo anterior el log que habia antes «listener.log» ha dejado de ser utilizado, y ahora es listener_201309.log el que esta funcionado como log para el listener, para esto confirmamos con un lsnrctl status y vemos la fila que tiene el parametro Listener Log File :
4) Como paso final se van a grabar los cambios realizados al listener.ora, por que en caso que el servidor se apage de forma abrupta o se reinicie el listener este va a comenzar a grabar nuevamente en el log default, y no es lo que queremos. Estos cambios los podemos grabar desde la misma herramienta lsnrctl, la que al grabar los cambios va a dejar un respaldo en la carpeta donde este el log con la configuracion del listener.ora anterior.
LSNRCTL> save_config
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
Saved LISTENER configuration parameters.
Listener Parameter File C:appJCAJproduct11.2.0dbhome_1networkadminlistener.ora
Old Parameter File C:appJCAJproduct11.2.0dbhome_1networkadminlistener.bak
The command completed successfully
5) Ahora si vamos a revisar el archivo listener.ora al final de este va a aparecer la hora de cambio y el parametro para que en caso que se reinicie siga escribiendo en el log correcto :
#—-ADDED BY TNSLSNR 06-SEP-2013 11:32:48—
LOG_FILE_LISTENER = listener_201309.log
#——————————————–
Bueno , despues de todo esto el log original podria ser borrado o archivado.
En el link que comente en el principio, hay mas soluciones en caso de que estemos en un escenario en que el listener no se puede bajar.
Esto sirve para las base de datos Oracle 10g en adelante, pero hay que recordar que 11g viene con un sistema que es el Automatic Diagnostic Repository (ADR).