sql >> Databáze >  >> RDS >> Oracle

ORA-03113:konec souboru na komunikačním kanálu

ORA-03113 je docela častá chyba. Pojďme se do toho hlouběji ponořit

Problém ORA-03113:konec souboru na komunikačním kanálu

Příčina: Spojení mezi klientským a serverovým procesem bylo přerušeno. Může k tomu také dojít, pokud z nějakého důvodu dojde k selhání externího agenta extproc.

Akce: Došlo k chybě komunikace, která vyžaduje další šetření. Nejprve zkontrolujte problémy se sítí a zkontrolujte nastavení SQL*Net. Podívejte se také na chyby v souboru alert.log. Nakonec otestujte, zda je proces serveru mrtvý a zda byl v době selhání vygenerován trasovací soubor. Ve funkci .NET mohou být nějaká systémová volání, která mohou proces ukončit. Odstraňte taková volání.

Chyba ORA-3113 „konec souboru na komunikačním kanálu“ je obecná chyba obvykle hlášená klientským procesem připojeným k databázi Oracle. Chyba v podstatě znamená „Nemohu komunikovat se stínovým procesem Oracle“. Z nějakého důvodu spolu váš klientský počítač a databázový server přestaly komunikovat. Protože se jedná o obecnou chybu, je třeba shromáždit více informací, aby bylo možné určit, co se stalo – tato chyba sama o sobě neukazuje příčinu problému.

Například ORA-3113 může být signalizován pro kterýkoli z následujících scénářů:
•Zhroucení serveru
•Váš serverový proces byl zabit na úrovni O/S
•Problémy se sítí
•Interní chyby Oracle (ORA-600 / ORA-7445) / přeruší se na serveru
•Klient nesprávně zpracovává více připojení
• atd.. atd.. atd.. – mnoho možných příčin! !
Je běžné, že tato chyba je doprovázena dalšími chybami, jako jsou:
• Interní chyba ORA-01041. rozšíření hostdef neexistuje
•ORA-03114 není připojeno k ORACLE
• ORA-01012 není přihlášeno

Tato chyba je někdy způsobena těmi nejjednoduššími věcmi. Pokud je to však způsobeno interní chybou Oracle, vyhledejte další informace ve svém protokolu výstrah.

Vezměme si jinou scénu, kde ORA-03113

(1) ORA-3113 během spouštění databáze Oracle

Může nastat ve všech fázích spouštění databáze Oracle

(2) Klient vidí ORA-3113 se spuštěným SQL / PLSQL

Pokud se chyba ORA-3113 objeví POTOM, co jste se připojili k Oracle, je velmi pravděpodobné, že se spustitelný soubor ‚oracle‘ neočekávaně ukončil. Proces serveru mohl zemřít z mnoha důvodů.

(a) Správce systému úmyslně zabil proces zabitím ID procesu, protože může spotřebovávat více CPU a paměti


(b) Mohlo by se to stát kvůli nějaké chybě. Měli bychom hledat trasovací soubor pro tuto relaci v diagnostickém adresáři a hledat řešení v metalink

(c) Pouze pro systém UNIX: Pokud není k dispozici žádný trasovací soubor, zkontrolujte výpis jádra v CORE_DUMP_DEST. Zkontrolujte následovně:

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

Pokud existuje soubor s názvem „core“, zkontrolujte, zda jeho čas odpovídá času problému. Pokud existují adresáře s názvem ‚core_‘, zkontrolujte soubory jádra v každém z nich. Je  DŮLEŽITÉ získat správný základní soubor. Nyní získejte trasování zásobníku z tohoto souboru „jádra“. Zkontrolujte každou z níže uvedených sekvencí, abyste viděli, jak to udělat – jedna z nich by měla pro vaši platformu fungovat.

Pokud máte dbx:

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

Pokud máte sdb:

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

Pokud máte xdb:

% script /tmp/core.s

(d) Je možné, že chybu způsobuje konkrétní příkaz SQL nebo blok PL/SQL. V mnoha případech to bude uvedeno v trasovacím souboru vytvořeném pod nadpisem „Aktuální příkaz SQL“ nebo poblíž středu trasovacího souboru pod kurzorem označeným řádkem „Aktuální kurzor NN“.

Pokud trasovací soubor nezobrazuje chybný příkaz, může být k jeho určení použit SQL_TRACE za předpokladu, že se problém bude opakovat. SQL_TRACE lze povolit ve většině klientských nástrojů

Vždy bychom se měli odvolávat na hlavní poznámku Metallinku  na ORA-03113
Hlavní poznámka:Odstraňování problémů ORA-03113 (ID dokumentu 1506805.1)

Také čte
ORA-01111
ORA-00900
ora-29283:neplatná operace se souborem


  1. Jak vypočítám průběžný součet v SQL bez použití kurzoru?

  2. Vysvětlení vyprázdnění vyrovnávací paměti protokolu

  3. Příručka pro začátečníky k tabulkám SQL

  4. Bylo by možné při provádění PITR pozastavit/obnovit v PostgreSQL?