ORA-03113 er en ganske almindelig fejl. Lad os tage et dybt dyk ned i det
Problem ORA-03113:slutningen af filen på kommunikationskanalen
Årsag: Forbindelsen mellem klient- og serverprocessen blev afbrudt. Det kan også ske, hvis den eksterne agent extproc går ned af en eller anden grund.
Handling: Der var en kommunikationsfejl, som kræver yderligere undersøgelse. Tjek først for netværksproblemer og gennemgå SQL*Net-opsætningen. Se også i alert.log-filen for eventuelle fejl. Til sidst, test for at se, om serverprocessen er død, og om en sporingsfil blev genereret på fejltidspunktet. Der kan være nogle systemkald i .NET-funktionen, som kan afslutte processen. Fjern sådanne opkald.
En ORA-3113 "end of file on communication channel" fejl er en generel fejl, der normalt rapporteres af en klientproces forbundet med en Oracle-database. Fejlen betyder grundlæggende 'Jeg kan ikke kommunikere med Oracle-skyggeprocessen'. Af en eller anden grund er din klientmaskine og databaseserveren holdt op med at tale med hinanden. Da det er sådan en generel fejl, skal der indsamles flere oplysninger for at hjælpe med at fastslå, hvad der er sket – denne fejl angiver ikke i sig selv årsagen til problemet.
For eksempel kunne ORA-3113 signaleres for ethvert af følgende scenarier:
•Servermaskine gik ned
•Din serverproces blev dræbt på O/S-niveau
•Netværksproblemer
•Oracle interne fejl (ORA-600 / ORA-7445) / afbryder på serveren
•Klient håndterer flere forbindelser forkert
• osv.. osv.. osv.. – mange mulige årsager ! !
Det er almindeligt, at denne fejl ledsages af andre fejl såsom:
• Intern fejl i ORA-01041. hostdef-udvidelsen eksisterer ikke
•ORA-03114 er ikke forbundet til ORACLE
• ORA-01012 er ikke logget på
Denne fejl er nogle gange forårsaget af de enkleste ting. Hvis det imidlertid er forårsaget af en intern Oracle-fejl, skal du se din advarselslog for yderligere information.
Lad os tage anderledes sceneri, hvor ORA-03113
(1) ORA-3113 under opstart af Oracle-database
Det kan forekomme i alle stadier af opstart af Oracle-database
(2) Klienten ser ORA-3113, der kører SQL / PLSQL
Hvis ORA-3113-fejlen opstår EFTER du har oprettet forbindelse til Oracle, er det højst sandsynligt, at den eksekverbare 'oracle' er afsluttet uventet. Serverprocessen kunne være død af mange årsager.
(a) Systemadministrator dræbte processen med vilje ved at dræbe proces-id'et, da den muligvis bruger mere CPU og hukommelse
(b) Det kan ske på grund af en eller anden fejl. Vi bør lede efter sporingsfilen til denne session i diagnostikbiblioteket og se efter løsningen i metalink
(c) Kun til UNIX: Hvis der ikke er nogen sporingsfil, skal du tjekke for en "kerne"-dump i CORE_DUMP_DEST. Kontroller som følger:
cd $ORACLE_HOME/dbs # Or your CORE_DUMP_DEST
ls -l core*
Hvis der er en fil kaldet 'kerne', skal du kontrollere, at dens tid passer til tidspunktet for problemet. Hvis der er mapper kaldet 'core_
Hvis du har dbx:
% script /tmp/core.stack % dbx $ORACLE_HOME/bin/oracle core (dbx) where … (dbx) quit % exit
Hvis du har sdb:
% script /tmp/core.stack % sdb $ORACLE_HOME/bin/oracle core t … q % exit
Hvis du har xdb:
% script /tmp/core.s
(d) Det kan være muligt, at en bestemt SQL-sætning eller PL/SQL-blok forårsager fejlen. I mange tilfælde vil dette være opført i sporingsfilen produceret under overskriften "Aktuel SQL-sætning" eller nær midten af sporingsfilen under markøren, der henvises til af linjen "Current cursor NN".
Hvis sporingsfilen ikke viser den fejlagtige sætning, kan SQL_TRACE bruges til at hjælpe med at bestemme dette, forudsat at problemet genskabes. SQL_TRACE kan aktiveres i de fleste klientværktøjer
Vi bør altid henvise til Metalink-hovednotatet om ORA-03113
Masternote:Fejlfinding af ORA-03113 (dok.-ID 1506805.1)
Læser også
ORA-01111
ORA-00900
ora-29283:ugyldig filhandling