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

ORA-03113:fine file sul canale di comunicazione

ORA-03113 è un errore abbastanza comune. Facciamo un tuffo a fondo in esso

Problema ORA-03113:fine file sul canale di comunicazione

Causa: La connessione tra il processo Client e Server è stata interrotta. Può anche accadere se l'agente esterno extproc si arresta in modo anomalo per qualche motivo.

Azione: Si è verificato un errore di comunicazione che richiede ulteriori indagini. Innanzitutto, verifica la presenza di problemi di rete e rivedi la configurazione di SQL*Net. Inoltre, cerca nel file alert.log eventuali errori. Infine, verifica se il processo del server è morto e se è stato generato un file di traccia al momento dell'errore. Potrebbero esserci alcune chiamate di sistema nella funzione .NET che potrebbero terminare il processo. Rimuovi tali chiamate.

Un errore ORA-3113 "fine file sul canale di comunicazione" è un errore generale generalmente segnalato da un processo client connesso a un database Oracle. L'errore significa fondamentalmente "Non riesco a comunicare con il processo ombra di Oracle". Per qualche motivo, la tua macchina client e il server del database hanno smesso di comunicare tra loro. Poiché si tratta di un errore così generico, è necessario raccogliere più informazioni per aiutare a determinare cosa è successo:questo errore di per sé non indica la causa del problema.

Ad esempio, ORA-3113 potrebbe essere segnalato per uno dei seguenti scenari:
•Il computer del server si è arrestato in modo anomalo
•Il processo del server è stato interrotto a livello di sistema operativo
•Problemi di rete
•Errori interni di Oracle (ORA-600 / ORA-7445) / interruzioni sul server
•Il client gestisce in modo errato connessioni multiple
• ecc.. ecc.. ecc. – molte possibili cause! !
È comune che questo errore sia accompagnato da altri errori quali:
• Errore interno ORA-01041. l'estensione hostdef non esiste
•ORA-03114 non connesso a ORACLE
• ORA-01012 non connesso

Questo errore a volte è causato dalle cose più semplici. Se, tuttavia, è causato da un errore interno di Oracle, consulta il registro degli avvisi per ulteriori informazioni.

Prendiamo uno scenario diverso in cui ORA-03113

(1) ORA-3113 durante l'avvio del database Oracle

Può verificarsi in tutte le fasi di avvio del database Oracle

(2) Il client vede ORA-3113 in esecuzione SQL/PLSQL

Se l'errore ORA-3113 si verifica DOPO esserti connesso a Oracle, è molto probabile che l'eseguibile "oracle" sia terminato in modo imprevisto. Il processo del server potrebbe essere terminato per molte ragioni.

(a) L'amministratore di sistema ha terminato deliberatamente il processo eliminando l'id del processo poiché potrebbe consumare più CPU e memoria


(b) Potrebbe succedere a causa di qualche bug, dovremmo cercare il file di traccia per questa sessione nella directory di diagnostica e cercare la soluzione in metalink

(c) Solo per UNIX: Se non è presente alcun file di traccia, verifica la presenza di un dump "core" in CORE_DUMP_DEST. Controlla come segue:

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

Se è presente un file chiamato "core", verifica che l'ora corrisponda all'ora del problema. Se sono presenti directory chiamate 'core_', verifica la presenza di file core in ciascuna di queste. È IMPORTANTE ottenere il file core corretto. Ora ottieni una traccia dello stack da questo file "core". Controlla ciascuna delle sequenze seguenti per vedere come farlo:una di queste dovrebbe funzionare per la tua piattaforma.

Se hai dbx:

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

Se hai sdb:

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

Se hai xdb:

% script /tmp/core.s

(d) È possibile che una  particolare istruzione SQL o un blocco PL/SQL stiano causando l'errore. In molti casi questo sarà elencato nel file di traccia prodotto sotto l'intestazione "Istruzione SQL corrente" o vicino al centro del file di traccia sotto il cursore a cui si fa riferimento dalla riga "Cursore corrente NN".

Se il file di traccia non mostra l'istruzione non riuscita, è possibile utilizzare SQL_TRACE per determinarlo, a condizione che il problema si riproduca. SQL_TRACE può essere abilitato nella maggior parte degli strumenti client

Dovremmo sempre fare riferimento alla  nota principale di Metalink su ORA-03113
Nota principale:risoluzione dei problemi ORA-03113 (ID documento 1506805.1)

Legge anche
ORA-01111
ORA-00900
ora-29283:operazione su file non valida