sql >> Database teknologi >  >> RDS >> Oracle

ORA-03113:slutningen af ​​filen på kommunikationskanalen

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_', tjek efter kernefiler i hver af disse. Det er VIGTIGT at få den korrekte kernefil. Få nu et stakspor fra denne 'kerne'-fil. Tjek hver af sekvenserne nedenfor for at se, hvordan du gør dette – en af ​​disse burde fungere til din platform.

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


  1. Find antallet af kolonner i en tabel

  2. Sådan bruger du en beregnet kolonne til at beregne en anden kolonne i samme visning

  3. Hvordan får du PyPy, Django og PostgreSQL til at arbejde sammen?

  4. Sådan overvåger du flere MySQL-forekomster, der kører på samme maskine - ClusterControl-tip og -tricks