¡Otra vez Oracle Enterprise Linux!

Parece que el ‘server’ con Oracle Enterprise Linux me ha cogido manía… He tenido un montón de problemas con él desde que lo instalé, como dije aquí, aquí, aquí y aquí.

La última: una ‘SELECT’ bastante larga desde un humilde sql*plus y de repente:

select /*+ full(a) */
a.col1,
a.col2
from schema.table_name a;

Comienza a mostrar en pantalla los resultados cuando, tras unos minutos:

...
...
955800207 T
ERROR:
ORA-03135: la conexión ha perdido contacto

10078290 filas seleccionadas.

ERROR:
ORA-03114: no conectado a ORACLE

(Hay un total de 11339771 filas en la tabla).

¿Cómo? ¿Por qué? ¿Qué pasa?
Lo más gracioso, el ‘server’ no responde a ‘ping’. “Se ha soltado el cable” -pienso. Pero no: el cable está en su sitio. El caso es que ni responde a ‘ping’ ni veo ningún otro equipo de la red cuando ejecuto un ‘ping’ desde él. Todo el TCP/IP se ha caído.

Intento deshabilitar/habilitar la tarjeta, pero sin ningún resultado. Lo mismo si paro y arranco el servicio de red.

Vuelvo al cliente y miro el sqlnet.log generado:

Fatal NI connect error 12170.

  VERSION INFORMATION:
        TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
        Windows NT TCP/IP NT Protocol Adapter for 32-bit Windows: Version
10.2.0.1.0 - Production
  Time: 10-MAR-2008 12:11:59
  Tracing not turned on.
  Tns error struct:
    ns main err code: 12535
    TNS-12535: Message 12535 not found; No message file for
product=NETWORK, facility=TNS
    ns secondary err code: 12560
    nt main err code: 505
    TNS-00505: Message 505 not found; No message file for
product=NETWORK, facility=TNS
    nt secondary err code: 60
    nt OS err code: 0
  Client address:

No hay duda: pérdida de conexión.

Otra vez en el ‘server’, miro ifconfig:

RX packets:674109 errors:0 dropped:0 overruns:0 frame:0
TX packets:674109 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:53271778 (50.8 MiB) TX bytes:259126296 (247.1 MiB)
Interrupt:169

Una vez aquí, lo único que cura el problema es un ‘reboot’ del ‘server’, que hace que todo vaya bien… hasta que ejecutamos de nuevo la dichosa ‘SELECT’, que provoca el cataclismo a un número de filas devueltas aleatorio: una vez 10 millones, otra 7 millones, otra 800.000, otra 700.000…

Ni que decir tiene que a estas alturas estoy más perdido que el hijo de Lindhberg y lo pruebo todo. Como he aprendido de de la experiencia con conflictos de puertos, paro el HTTP Server y el enterprise manager, pero sin ningún resultado.

No sé qué más hacer.

A todo esto, dentro del propio ‘server’ todo parece ir OK: el ‘listener’ funciona, el HTTP Server (tras rearrancarlo) también, y el ‘enterprise manager’, lo mismo. Y lo más sangrante: la misma ‘SELECT’ ejecutada desde un sql*plus local (via ‘listener’, no ‘bequeath’) funciona como si nada…

Comienzo a sospechar de la tarjeta de red -una Marvell Yukon de 1Gbps- y del ‘switch’ (también de 1Gbps). Probando y probando me doy cuenta que el error se produce siempre que el cliente y el ‘server’ están conectados directamente al mismo ‘switch’. Y eso me lleva a empezar a sospechar de algún tipo de ‘overflow’ en la tarjeta, ya que cuando están en distinto ‘switch’ las conexiones pasan siempre por tramos que van a 100Mbps.

Pruebo tansferencias de ficheros grandes con FTP y el caso es que, además de no producirse errores, van como un tiro. Pero los problemas aparecen no cuando la transferencia es grande en volumen(FTP), sino cuando la transferencia es larga en el tiempo (sql*plus).

Mirando y mirando encuentro en la ‘web’ de marvell un driver para Linux. Lo bajo y lo instalo (compilando con los fuentes del kernel, ni más ni menos).

Tras instalarlo (modprobe…) pruebo la ‘SELECT’ con el cliente y el ‘server’ en el mismo ‘switch’ y… ¡funciona!

Y así lo ha venido haciendo desde entonces sin dar ni un ruido.

Lo dicho: el sistema me ha cogido manía y aprovecha la menor ocasión para darme un susto.

Cosas del Oracle Enterprise Linux, me temo…

Saludos.

Carlos.

Anuncios

2 respuestas a ¡Otra vez Oracle Enterprise Linux!

  1. JOan Arasa dice:

    Hola Carlos pues nada buscando por Internet te encontré. ya que se me reproduce el mismo error, la diferencia mia es que yo tengo los clientes en distintas sedes unidas por adsls ips fijas y netlan. La cuestion es que siempre habia funcionado bien. Per cada dia se me reproduce el error en los tpvs de los clientes, y estoy desesperao.

    Si quieres puedes agregarme al skype joan.arasa1 o al msg joan_cerril@hotmail.com.

    Saludos y gracias de antemano

  2. carlosal dice:

    Joan:

    Si el problema es el mismo que tenía yo, no te quedará más remedio que revisar concienzudamente las comunicaciones.

    Estos fallos son muy difíciles de diagnosticar, porque entran en juego gran cantidad de factores Oracle y No-Oracle.

    Saludos y suerte.

    Carlos.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: