Oracle
 sql >> Base de données >  >> RDS >> Oracle

ORA-03113 :fin de fichier sur le canal de communication

ORA-03113 est une erreur assez courante. Plongeons-y en profondeur

Problème ORA-03113 :fin de fichier sur le canal de communication

Cause : La connexion entre le processus client et serveur a été interrompue. Cela peut également arriver si l'extproc de l'agent externe se bloque pour une raison quelconque.

Action : Il y a eu une erreur de communication qui nécessite une enquête plus approfondie. Tout d'abord, vérifiez les problèmes de réseau et passez en revue la configuration de SQL*Net. Recherchez également d'éventuelles erreurs dans le fichier alert.log. Enfin, testez pour voir si le processus serveur est mort et si un fichier de trace a été généré au moment de l'échec. Certains appels système dans la fonction .NET peuvent mettre fin au processus. Supprimez ces appels.

Une erreur ORA-3113 "fin de fichier sur le canal de communication" est une erreur générale généralement signalée par un processus client connecté à une base de données Oracle. L'erreur signifie essentiellement "Je ne peux pas communiquer avec le processus fantôme d'Oracle". Pour une raison quelconque, votre ordinateur client et le serveur de base de données ont cessé de se parler. Comme il s'agit d'une erreur si générale, plus d'informations doivent être collectées pour aider à déterminer ce qui s'est passé - cette erreur en elle-même n'indique pas la cause du problème.

Par exemple, ORA-3113 peut être signalé pour l'un des scénarios suivants :
•La machine serveur est tombée en panne
•Votre processus serveur a été tué au niveau du système d'exploitation
•Problèmes de réseau
•Erreurs internes d'Oracle (ORA-600 / ORA-7445) / abandons sur le serveur
•Le client gère incorrectement plusieurs connexions
• etc.. etc.. etc. – beaucoup de causes possibles ! !
Il est courant que cette erreur soit accompagnée d'autres erreurs telles que :
• Erreur interne ORA-01041. l'extension hostdef n'existe pas
• ORA-03114 non connecté à ORACLE
• ORA-01012 non connecté

Cette erreur est parfois causée par les choses les plus simples. Toutefois, si cela est dû à une erreur interne d'Oracle, consultez votre journal d'alertes pour plus d'informations.

Prenons une scène différente où ORA-03113

(1) ORA-3113 lors du démarrage de la base de données Oracle

Cela peut se produire à toutes les étapes de démarrage de la base de données Oracle

(2) Le client voit ORA-3113 exécuter SQL / PLSQL

Si l'erreur ORA-3113 se produit APRÈS que vous vous soyez connecté à Oracle, il est fort probable que l'exécutable "oracle" se soit terminé de manière inattendue. Le processus serveur aurait pu mourir pour de nombreuses raisons.

(a) L'administrateur système a délibérément tué le processus en tuant l'identifiant du processus car il peut consommer plus de CPU et de mémoire


(b) Cela peut arriver à cause d'un bogue, nous devrions rechercher le fichier de trace pour cette session dans le répertoire de diagnostic et vérifier la solution dans metalink

(c) Pour UNIX uniquement : S'il n'y a pas de fichier de trace, recherchez un vidage "core" dans CORE_DUMP_DEST. Vérifiez comme suit :

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

S'il existe un fichier appelé "core", vérifiez que son heure correspond à l'heure du problème. S'il existe des répertoires appelés 'core_', recherchez les fichiers principaux dans chacun d'eux. Il est  IMPORTANT d'obtenir le bon fichier core. Obtenez maintenant une trace de la pile à partir de ce fichier "core". Consultez chacune des séquences ci-dessous pour savoir comment procéder. L'une d'entre elles devrait fonctionner pour votre plate-forme.

Si vous avez dbx :

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

Si vous avez sdb :

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

Si vous avez xdb :

% script /tmp/core.s

(d) Il est possible qu'une instruction SQL particulière ou un bloc PL/SQL soit à l'origine de l'erreur. Dans de nombreux cas, cela sera répertorié dans le fichier de trace produit sous l'en-tête "Instruction SQL actuelle" ou près du milieu du fichier de trace sous le curseur auquel la ligne "Curseur actuel NN" fait référence.

Si le fichier de trace n'affiche pas l'instruction défaillante, SQL_TRACE peut être utilisé pour aider à le déterminer, à condition que le problème se reproduise. SQL_TRACE peut être activé dans la plupart des outils clients

Nous devons toujours nous référer à la note principale Metalink sur ORA-03113
Remarque principale :Dépannage ORA-03113 (Doc ID 1506805.1)

Lit également
ORA-01111
ORA-00900
ora-29283 :opération de fichier invalide