sql >> Databasteknik >  >> RDS >> Oracle

ORA-03113:slutet av filen på kommunikationskanalen

ORA-03113 är ett ganska vanligt fel. Låt oss ta en djupdykning i det

Problem ORA-03113:slutet av filen på kommunikationskanalen

Orsak: Anslutningen mellan klient- och serverprocessen bröts. Det kan också hända om den externa agenten extproc kraschar av någon anledning.

Åtgärd: Det uppstod ett kommunikationsfel som kräver ytterligare utredning. Kontrollera först om det finns nätverksproblem och granska SQL*Net-inställningarna. Titta också efter eventuella fel i filen alert.log. Testa slutligen för att se om serverprocessen är död och om en spårningsfil genererades vid feltillfället. Det kan finnas några systemanrop i .NET-funktionen som kan avsluta processen. Ta bort sådana samtal.

Ett ORA-3113 "slut på fil på kommunikationskanal"-fel är ett allmänt fel som vanligtvis rapporteras av en klientprocess kopplad till en Oracle-databas. Felet betyder i princip "Jag kan inte kommunicera med Oracle-skuggprocessen". Av någon anledning har din klientdator och databasservern slutat prata med varandra. Eftersom det är ett sådant allmänt fel måste mer information samlas in för att avgöra vad som har hänt – detta fel i sig indikerar inte orsaken till problemet.

Till exempel kan ORA-3113 signaleras för något av följande scenarier:
•Servermaskin kraschade
•Din serverprocess dödades på O/S-nivå
•Nätverksproblem
•Oracle interna fel (ORA-600 / ORA-7445) / avbryter på servern
•Klient hanterar flera anslutningar felaktigt
• etc.. etc.. etc.. – många möjliga orsaker ! !
Det är vanligt att detta fel åtföljs av andra fel som:
• ORA-01041 internt fel. hostdef-tillägget finns inte
•ORA-03114 inte ansluten till ORACLE
• ORA-01012 inte inloggad

Detta fel orsakas ibland av de enklaste sakerna. Om det däremot orsakas av ett internt Oracle-fel, titta i din varningslogg för mer information.

Låt oss ta olika scener där ORA-03113

(1) ORA-3113 under uppstart av Oracle-databasen

Det kan förekomma i alla stadier av uppstart av Oracle-databasen

(2) Klienten ser ORA-3113 som kör SQL / PLSQL

Om ORA-3113-felet inträffar EFTER att du har anslutit till Oracle är det mest troligt att den körbara "oracle"-filen har avslutats oväntat. Serverprocessen kan ha dött av många anledningar.

(a) Systemadministratören dödade processen medvetet genom att döda process-id:t eftersom det kan förbruka mer CPU och minne


(b) Det kan hända på grund av någon bugg. Vi bör leta efter spårningsfilen för denna session i diagnostikkatalogen och leta efter lösningen i metalink

(c) Endast för UNIX: Om det inte finns någon spårningsfil, leta efter en "kärn"-dump i CORE_DUMP_DEST. Kontrollera enligt följande:

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

Om det finns en fil som heter "kärna" kontrollera att dess tid matchar tidpunkten för problemet. Om det finns kataloger som heter 'core_', leta efter kärnfiler i var och en av dessa. Det är VIKTIGT att få rätt kärnfil. Skaffa nu ett stackspår från denna "kärn"-fil. Kontrollera var och en av sekvenserna nedan för att se hur du gör detta – en av dessa borde fungera för din plattform.

Om du har dbx:

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

Om du har sdb:

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

Om du har xdb:

% script /tmp/core.s

(d) Det kan vara möjligt att en viss SQL-sats eller PL/SQL-block orsakar felet. I många fall kommer detta att listas i spårningsfilen som produceras under rubriken "Aktuell SQL-sats", eller nära mitten av spårningsfilen under markören som hänvisas till av raden "Current cursor NN".

Om spårningsfilen inte visar den misslyckade satsen kan SQL_TRACE användas för att fastställa detta, förutsatt att problemet reproduceras. SQL_TRACE kan aktiveras i de flesta klientverktyg

Vi bör alltid hänvisa till  huvudMetalink-anteckningen om ORA-03113
Master Note:Felsökning av ORA-03113 (Dokument-ID 1506805.1)

Läser också
ORA-01111
ORA-00900
ora-29283:ogiltig filoperation


  1. RODBC Temporary Table Issue vid anslutning till MS SQL Server

  2. Hur man lägger till NOT NULL-begränsning i MySQL

  3. MySQL TRUNCATE() Funktion – Trunkera ett tal till ett specificerat antal decimaler

  4. Kan inte hitta PostgreSQL-klientbiblioteket (libpq)