sql >> Base de Datos >  >> RDS >> Oracle

ORA-03113:fin de archivo en canal de comunicación

ORA-03113 es un error bastante común. Profundicemos en ello

Problema ORA-03113:fin de archivo en canal de comunicación

Causa: La conexión entre el proceso del Cliente y el Servidor se rompió. También puede ocurrir si el agente externo extproc falla por algún motivo.

Acción: Hubo un error de comunicación que requiere más investigación. Primero, compruebe si hay problemas de red y revise la configuración de SQL*Net. Además, busque en el archivo alert.log para ver si hay errores. Finalmente, pruebe para ver si el proceso del servidor está inactivo y si se generó un archivo de rastreo en el momento de la falla. Puede haber algunas llamadas al sistema en la función .NET que podrían terminar el proceso. Elimina este tipo de llamadas.

Un error de "fin de archivo en el canal de comunicación" ORA-3113 es un error general generalmente informado por un proceso de cliente conectado a una base de datos de Oracle. El error básicamente significa 'No puedo comunicarme con el proceso de sombra de Oracle'. Por alguna razón, su máquina cliente y el servidor de la base de datos han dejado de comunicarse entre sí. Como es un error tan general, se debe recopilar más información para ayudar a determinar qué sucedió; este error por sí solo no indica la causa del problema.

Por ejemplo, ORA-3113 podría señalarse para cualquiera de los siguientes escenarios:
•La máquina del servidor se bloqueó
•El proceso de su servidor se eliminó en el nivel del sistema operativo
•Problemas de red
•Errores internos de Oracle (ORA-600 / ORA-7445)/abortos en el servidor
•El cliente maneja incorrectamente varias conexiones
• etc.. etc.. etc.. ¡Muchas causas posibles! !
Es común que este error esté acompañado de otros errores como:
• Error interno ORA-01041. la extensión hostdef no existe
•ORA-03114 no está conectado a ORACLE
• ORA-01012 no ha iniciado sesión

Este error a veces es causado por las cosas más simples. Sin embargo, si se debe a un error interno de Oracle, consulte su registro de alertas para obtener más información.

Tomemos un escenario diferente donde ORA-03113

(1) ORA-3113 durante el inicio de la base de datos Oracle

Puede ocurrir en toda la etapa de inicio de la base de datos Oracle

(2) El cliente ve ORA-3113 ejecutando SQL/PLSQL

Si el error ORA-3113 ocurre DESPUÉS de que se haya conectado a Oracle, lo más probable es que el ejecutable 'oracle' haya terminado inesperadamente. El proceso del servidor podría haber muerto por muchas razones.

(a) El administrador del sistema eliminó el proceso deliberadamente al eliminar la identificación del proceso, ya que puede estar consumiendo más CPU y memoria


(b) Podría suceder debido a algún error. Deberíamos buscar el archivo de rastreo para esta sesión en el directorio de diagnósticos y buscar la solución en metalink

(c) Solo para UNIX: Si no hay un archivo de seguimiento, busque un volcado de "núcleo" en CORE_DUMP_DEST. Verifique lo siguiente:

cd $ORACLE_HOME/dbs # Or your CORE_DUMP_DEST
ls -l core*

Si hay un archivo llamado 'núcleo', verifique que su hora coincida con la hora del problema. Si hay directorios llamados 'core_', verifique los archivos principales en cada uno de estos. Es  IMPORTANTE obtener el archivo principal correcto. Ahora obtenga un seguimiento de pila de este archivo 'núcleo'. Verifique cada una de las secuencias a continuación para ver cómo hacer esto; una de estas debería funcionar para su plataforma.

Si tiene dbx:

% script /tmp/core.stack
% dbx $ORACLE_HOME/bin/oracle core
(dbx) where
…
(dbx) quit
% exit

Si tienes sdb:

% script /tmp/core.stack
% sdb $ORACLE_HOME/bin/oracle core
t
…
q
% exit

Si tienes xdb:

% script /tmp/core.s

(d) Es posible que una  sentencia SQL en particular o un bloque PL/SQL esté causando el error. En muchos casos, esto aparecerá en el archivo de seguimiento producido bajo el título "Sentencia SQL actual" o cerca de la mitad del archivo de seguimiento bajo el cursor al que hace referencia la línea "Cursor actual NN".

Si el archivo de rastreo no muestra la declaración fallida, se puede usar SQL_TRACE para ayudar a determinar esto, siempre que el problema se reproduzca. SQL_TRACE se puede habilitar en la mayoría de las herramientas del cliente

Siempre debemos consultar  la nota maestra de Metalink  en ORA-03113
Nota maestra:solución de problemas de ORA-03113 (ID de documento 1506805.1)

También lee
ORA-01111
ORA-00900
ora-29283:operación de archivo no válida