
¡Hola a todos! Esta semana vamos a ver un problema muy común y sencillo de resolver. Se trata de un bug en los ficheros de traza de Oracle cuando estos tienen más de 4 GB.
Este tipo de error, provoca indisponibilidad en el servicio por lo que debemos solucionarla cuanto antes para que impacte lo mínimo posible. ¡AL LÍO!
Partimos del siguiente escenario:
Volvemos a la oficina, después de una fructífera noche de descanso, teléfono en mano recibimos una llamada del cliente, no podemos conectar a nuestra BBDD desde máquina remota. 😱😱😱
Nos conectamos a la máquina, y vemos que cuando intentamos conectar al listener, vemos que se eterniza la espera.🤔
Por esto, entramos en la utilidad LSNRCTL y ejecutamos un status:
LSNRCTL> status listener Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<hostname>) (PORT=1521))) TNS-12547: TNS:lost contact TNS-12560: TNS:protocol adapter error TNS-00517: Lost contact 64-bit Windows Error: 54: Unknown error
Además, en el log podemos ver los siguientes errores:
TNS-12518: TNS:listener could not hand off client connection TNS-12571: TNS:packet writer failure TNS-12560: TNS:protocol adapter error TNS-00530: Protocol adapter error 64-bit Windows Error: 58: Unknown error
En otras palabras, el estado o los servicios de lsnrctl no responden.
Todo esto se produce por un BUG en el que a partir de los 4GB de fichero de trazas del LISTENER, la conexión se ralentiza hasta dejar de funcionar. A Windows le cuesta mucho manejar este tamaño para ficheros de texto plano por lo que deja los servicios no operativos.
¿Cómo solucionamos este bug?
Para solucionarlo vamos a los servicios de Oracle en Windows y paramos manualmente el listener.

Después vamos a la ruta del log
$ORACLE_BASE\diag\tnslsnr\<hostname>\listener\trace\<listener_name>.log
Y borramos el fichero directamente (Oracle lo creará cuando intente escribir de nuevo).
Además, tenemos otra opción, hacer que LSNRCTL no use logfile.
LSNRCTL>set current_listener <listener_name> LSNRCTL>set log_status OFF LSNRCTL>save_config
Si quieres estar al día de todas las entradas que publiquemos, tan solo tienes que suscribirte a nuestro blog. Sólo te enviaremos un único email al mes y podrás darte de baja cuando quieras sin ningún problema.
¿Aún no conoces Query Performance? Descubre cómo puede ayudarte en tu entorno Oracle. Más información en su página de LinkedIn.
Sígue a GPS en LinkedIn
Esperemos que esta entrada os haya sido de utilidad. Nos vemos en próximas entradas.
Ver más problemas y soluciones en: https://www.gpsos.es/2018/03/creacion-fichero-tnsnames/
Documentación oficial: https://support.oracle.com/knowledge/Oracle%20Database%20Products/1319797_1.html