ORA-03113 to dość częsty błąd. Zagłębmy się w to głęboko
Problem ORA-03113:koniec pliku w kanale komunikacji
Przyczyna: Połączenie pomiędzy procesem Klienta i Serwera zostało zerwane. Może się to również zdarzyć, jeśli z jakiegoś powodu extproc agenta zewnętrznego ulegnie awarii.
Działanie: Wystąpił błąd komunikacji, który wymaga dalszego zbadania. Najpierw sprawdź problemy z siecią i przejrzyj konfigurację SQL*Net. Sprawdź również, czy w pliku alert.log nie ma błędów. Na koniec sprawdź, czy proces serwera jest martwy i czy plik śledzenia został wygenerowany w czasie niepowodzenia. W funkcji .NET mogą znajdować się wywołania systemowe, które mogą zakończyć proces. Usuń takie połączenia.
Błąd ORA-3113 „koniec pliku w kanale komunikacyjnym” jest ogólnym błędem zwykle zgłaszanym przez proces klienta połączony z bazą danych Oracle. Błąd zasadniczo oznacza „Nie mogę komunikować się z procesem cienia Oracle”. Z jakiegoś powodu komputer klienta i serwer bazy danych przestały się ze sobą komunikować. Ponieważ jest to taki ogólny błąd, należy zebrać więcej informacji, aby pomóc określić, co się stało – ten błąd sam w sobie nie wskazuje przyczyny problemu.
Na przykład ORA-3113 może zostać zasygnalizowany dla dowolnego z następujących scenariuszy:
•Maszyna serwera uległa awarii
•Proces serwera został zabity na poziomie systemu operacyjnego
•Problemy z siecią
•Błędy wewnętrzne Oracle (ORA-600 / ORA-7445) / przerwanie na serwerze
•Klient niewłaściwie obsługujący wiele połączeń
• itd.. itd.. itd. – wiele możliwych przyczyn ! !
Często temu błędowi towarzyszą inne błędy, takie jak:
• Błąd wewnętrzny ORA-01041. rozszerzenie hostdef nie istnieje
•ORA-03114 nie jest połączone z ORACLE
• ORA-01012 nie jest zalogowany
Ten błąd jest czasami spowodowany najprostszymi rzeczami. Jeśli jednak jest to spowodowane wewnętrznym błędem Oracle, zajrzyj do dziennika alertów, aby uzyskać dalsze informacje.
Weźmy inną scenerię, w której ORA-03113
(1) ORA-3113 podczas uruchamiania bazy danych Oracle
Może wystąpić na każdym etapie uruchamiania bazy danych Oracle
(2) Klient widzi ORA-3113 z uruchomionym SQL / PLSQL
Jeśli błąd ORA-3113 wystąpi PO połączeniu się z Oracle, najprawdopodobniej plik wykonywalny „oracle” nieoczekiwanie się zakończył. Proces serwera mógł umrzeć z wielu powodów.
(a) Administrator systemu celowo zabił proces, zabijając identyfikator procesu, ponieważ może to zużywać więcej procesora i pamięci
(b) Może się to zdarzyć z powodu jakiegoś błędu, powinniśmy poszukać pliku śledzenia dla tej sesji w katalogu diagnostics i sprawdzić rozwiązanie w metalinku
(c) Tylko w systemie UNIX: Jeśli nie ma pliku śledzenia, poszukaj zrzutu „core” w CORE_DUMP_DEST. Sprawdź w następujący sposób:
cd $ORACLE_HOME/dbs # Or your CORE_DUMP_DEST
ls -l core*
Jeśli istnieje plik o nazwie „core”, sprawdź, czy jego czas zgadza się z czasem wystąpienia problemu. Jeśli istnieją katalogi o nazwie „core_
Jeśli masz dbx:
% script /tmp/core.stack % dbx $ORACLE_HOME/bin/oracle core (dbx) where … (dbx) quit % exit
Jeśli masz sdb:
% script /tmp/core.stack % sdb $ORACLE_HOME/bin/oracle core t … q % exit
Jeśli masz xdb:
% script /tmp/core.s
(d) Możliwe, że przyczyną błędu jest konkretna instrukcja SQL lub blok PL/SQL. W wielu przypadkach będzie to wymienione w pliku śledzenia utworzonym pod nagłówkiem „Bieżąca instrukcja SQL” lub w pobliżu środka pliku śledzenia pod kursorem, do którego odnosi się wiersz „Bieżący kursor NN”.
Jeśli plik śledzenia nie zawiera instrukcji, która zakończyła się niepowodzeniem, do ustalenia tego można użyć funkcji SQL_TRACE, pod warunkiem, że problem się powtórzy. SQL_TRACE można włączyć w większości narzędzi klienckich
Zawsze powinniśmy odwoływać się do głównej notatki Metalink na ORA-03113
Uwaga główna:rozwiązywanie problemów ORA-03113 (identyfikator dokumentu 1506805.1)
Też czyta
ORA-01111
ORA-00900
ora-29283:nieprawidłowa operacja na pliku