Kann mir einer diese Fehler erklären ?

ich habe heute nacht einen import gemacht (da kommt auch die frage untendrunter her)

irgendwann nachts hat sich die fuhre dann verabschiedet

IMP-00058: ORACLE error 321 encountered
ORA-00321: log of thread , cannot update log file header
IMP-00058: ORACLE error 12571 encountered
ORA-12571: TNS:stuck_out_tongue:acket writer failure
IMP-00018: partial import of previous table completed: 6289899 rows imported
IMP-00017: following statement failed with ORACLE error 3114:
„CREATE INDEX „VERBR_ZEITP_TARIF_ZEITP_ID“ ON „VERBR_ZEITP_TARIF“ („VERBR_ZE“
„ITP_ID“ ) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 52428800 NEXT“
" 163840 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELI"
„ST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE „ECCPLUS_I“ LOGGING“
IMP-00003: ORACLE error 3114 encountered
ORA-03114: not connected to ORACLE
IMP-00000: Import terminated unsuccessfully

D:\Dumps\Ecca\Entpackt>imp xxxxxxxxxxxxxxxx COMMIT=Y full=y ignore=Y

Import: Release 8.1.7.0.0 - Production on Wed Jan 21 18:22:18 2004

© Copyright 2000 Oracle Corporation. All rights reserved.

IMP-00058: ORACLE error 1092 encountered
ORA-01092: ORACLE instance terminated. Disconnection forcedUsername:

vermutung ist jetzt das noch irgendein job gelaufen ist…
liege ich da im zweifel richtig oder muß ich mir gedanken machen ?
die fehlertabelle von oracle habe ich mir bezgl. der fehlermeldungen schon durchgelesen, aber so wirklich hat mir das nicht geholfen.

Hallo Chris!

irgendwann nachts hat sich die fuhre dann verabschiedet

IMP-00058: ORACLE error 321 encountered
ORA-00321: log of thread , cannot update log file header
IMP-00058: ORACLE error 12571 encountered
ORA-12571: TNS:stuck_out_tongue:acket writer failure

Dein Client kann die DB nicht mehr erreichen…

IMP-00018: partial import of previous table completed: 6289899
rows imported

…einen Teil der aktuellen Tabelle hat er aber schon importiert. Weil es schwer fallen dürfte beim nächsten Import genau diese Zeilen nicht nochmals zu importieren (höchstens du genehmigst dir 6289899 mal die Meldung, dass ein Satz wegen einer primary key violation nicht importiert werden kann) ist es meist besser, die schon importierten Sätze zu löschen (was besonders leicht geht, wenn die Tabelle vorher leer war).

IMP-00017: following statement failed with ORACLE error 3114:
„CREATE INDEX „VERBR_ZEITP_TARIF_ZEITP_ID“ ON
„VERBR_ZEITP_TARIF“ („VERBR_ZE“
„ITP_ID“ ) PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(INITIAL 52428800 NEXT“
" 163840 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0
FREELISTS 1 FREELI"
„ST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE „ECCPLUS_I“
LOGGING“
IMP-00003: ORACLE error 3114 encountered
ORA-03114: not connected to ORACLE
IMP-00000: Import terminated unsuccessfully

Die Verbindung zur DB steht immer noch nicht. Der Import kann also nicht weiter machen und beendet sich mal intelligenterweise.

D:\Dumps\Ecca\Entpackt>imp xxxxxxxxxxxxxxxx COMMIT=Y
full=y ignore=Y

IMP-00058: ORACLE error 1092 encountered
ORA-01092: ORACLE instance terminated. Disconnection
forcedUsername:

Die Datenbank wurde „abnormal“ beendet. Das kann entweder einen Fehler zur Ursache haben, oder einen „shutdown abort“. Ich tippe auf einen Fehler, weil des Nächtens die Sicherung der Datenfiles läuft und diese exklusiv im Zugriff hat. Das passt aber Oracle nicht, wenn es da was reinschreiben will.

Kurz noch zum Shutdown: Unter Windows wird übrigens in der Standardeinstellung auch ein „shutdown abort“ gemacht, wenn das Service gestoppt wird. Das kann aber AFAIK mittlerweile ändern.

Um genau herauszufinden was passiert ist musst du dir die alert logs der DB ansehen (oder mal den Admin fragen, wegen der Sicherung und so…)

vermutung ist jetzt das noch irgendein job gelaufen ist…
liege ich da im zweifel richtig oder muß ich mir gedanken
machen ?

Ich vermute (wieder) mal: beides!

die fehlertabelle von oracle habe ich mir bezgl. der
fehlermeldungen schon durchgelesen, aber so wirklich hat mir
das nicht geholfen.

Gehen wir die aufgetretenen Fehlermeldungen nochmal durch:

IMP-00058: ORACLE error [xxxxx] encountered

Da beschwert sich der Imp, dass er einen Fehler von der DB bekommen hat (eine der unnötigsten Fehlermeldungen auf dieser Welt [Fehler: ein Fehler ist aufgetreten…]).

ORA-00321: log of thread , cannot update log file header

Oracle kann/darf nicht in sein Logfile schreiben - das mag es aber gar nicht. Ich hab’s jetzt nicht ausprobiert, aber ich gehe davon aus, dass Oracle das zum Anlass nimmt die Instance zu stoppen (und zwar auf die brutale Weise, weil es ja davon ausgehen muss, dass es die Logdateien etc. ohnehin nicht mehr richtigstellen kann).

ORA-12571: TNS:stuck_out_tongue:acket writer failure

Ich bemühe mal die Doku:
TNS-12571 TNS:stuck_out_tongue:acket writer failure
Cause: An error occurred during a data send. This message is not normally visible to the user.
In addition, this message could occur when any of the following SQL*Plus commands have been issued:
SHUTDOWN ABORT
SHUTDOWN IMMEDIATE
SHUTDOWN TRANSACTIONAL

Da haben wir’s also: Hier ist er wieder, unser shutdown abort…

IMP-00017: following statement failed with ORACLE error 3114:

Sehr ähnlich dem IMP-00058, allerdings sagt er uns da auch noch, was genau das Statement war, das den Fehler hervorgerufen hat. Damit kann man wenigstens hin und wieder was anfangen (hier allerdings nicht…).

ORA-03114: not connected to ORACLE

Der ist leicht, oder? Wenn die Instance runtergefahren ist (oder gerade dabei ist das zu tun) dann sind wir jetzt natürlich nicht mehr mit ihr verbunden.

IMP-00000: Import terminated unsuccessfully

Da sag ich jetzt aber wirklich nix dazu.

IMP-00058: ORACLE error 1092 encountered

Den hatten wir schon *grmbl*

ORA-01092: ORACLE instance terminated. Disconnection forced

Das heißt genau das, was da steht: Die Instance wurde beendet, deshalb wurde auch die Session, die dein Import aufmachen wollte gezwungen die verbindung abzubrechen. Vor dem Username: könnte zwar noch ein line feed stehen, aber wer will denn da noch so pingelig sein

Mit welcher Fehlermeldung genau hast du ein Verständnisproblem?

Ach ja, eine Lösung brauchst du auch noch: Falls meine Vermutung mit der Sicherung richtig ist, dann sag dem Admin, dass die DB auf mehrere Arten gesichert werden kann, aber eben nicht so wie jetzt.

  1. Man fahre einen Export auf der laufenden DB und sichere nur diesen, nicht die DB Files physisch.
  2. Man verwende eine Sicherungssoftware, die Online-Backups einer Oracle DB beherrscht.
  3. Man bringe die derzeitige Sicherung dazu, die Files während der Sicherung nicht zu sperren.
  4. Man beende die Instance vor der Sicherung und starte sie anschliessend wieder.

ACHTUNG: Wirklich sicher (und teuer) ist nur der zweite Weg, die beiden anderen Möglichkeiten haben zum Teil gravierende Nachteile (besonders 3)). Der Admin muss sich hier (evtl. gemeinsam mit einem, der von Oracle DBs einigermassen viel weiss) jedenfalls noch schlau machen!!!

Gruß,
Martin

Hallo Martin,

mittlerweile habe ich mal in das log geschaut…

Wed Jan 21 18:21:51 2004
Errors in file C:\orant\ecca\trace\bdump\eccaLGWR.TRC:
ORA-00321: log 2 of thread 1, cannot update log file header
ORA-00312: online log 2 thread 1: ‚C:\ORANT\ECCA\REDOLOG\REDO02.LOG‘
ORA-27091: skgfqio: unable to queue I/O
OSD-04008: WriteFile() failure, unable to write to file
O/S-Error: (OS 5) Access is denied.

Dann ist die Instanz runtergefahren worden (abort)

Wenn ich die Fehlermeldung richtig interpretiert habe (OSD-04008) dann hat die Bandsicherung das redolo2.log gesperrt - richtig ?
leider habe ich erst gestern abend erfahren das seit neuesten abends ab 18 Uhr eine Sicherung läuft

nach dem Hochfahren der Instanz habe ich noch folgenden Fehler:

Errors in file C:\orant\ecca\trace\bdump\eccaSNP0.TRC:
ORA-12012: error on auto execute of job 3366
ORA-06550: line 1, column 96:
PLS-00201: identifier ‚JOBMAN.CONTROL‘ must be declared
ORA-06550: line 1, column 96:
PL/SQL: Statement ignored

Dreht es sich hierbei um das Package Jobman das das recompiled werden muß ? (kann ich mitlerweile nicht mehr nachfollziehen, daich den Dump erneut eingespielt habe)

Grüße

Chris

Hallo Chris,

mittlerweile habe ich mal in das log geschaut…

…was allgemein bei Oracle ne gute Idee ist :smile:

Errors in file C:\orant\ecca\trace\bdump\eccaLGWR.TRC:

Sagt dieses Trace-File evtl. noch mehr über den Fehler aus?

ORA-00321: log 2 of thread 1, cannot update log file header
ORA-00312: online log 2 thread 1:
‚C:\ORANT\ECCA\REDOLOG\REDO02.LOG‘

sagt eigentlich schon die Fehlermeldung: Oracle kann das angegebene File nicht beschreiben. Unter Unix würde ich auf ein Rechteproblem tippen. Unter Windows hat wahrscheinlich ein anderer Prozess diese Datei gesperrt (die Sicherung evtl?)
Zur Sicherung allgemein: ein online-redo-log würde ich überhaupt nicht sichern. Lieber vor Start der Sicherung den Befehl:

alter system archive log current

absetzen. Dann wird das aktuell gültige Logfile geswitched und archiviert. Dann kannst Du die archivierten Logs sichern und hast ebenfalls einen aktuellen Stand.

ORA-27091: skgfqio: unable to queue I/O
OSD-04008: WriteFile() failure, unable to write to file
O/S-Error: (OS 5) Access is denied.

wie gesagt: Rechte- oder Zugriffsproblem.

Wenn ich die Fehlermeldung richtig interpretiert habe
(OSD-04008) dann hat die Bandsicherung das redolo2.log
gesperrt - richtig ?

Ja, ist durchaus denkbar.

nach dem Hochfahren der Instanz habe ich noch folgenden
Fehler:

Errors in file C:\orant\ecca\trace\bdump\eccaSNP0.TRC:
ORA-12012: error on auto execute of job 3366
ORA-06550: line 1, column 96:
PLS-00201: identifier ‚JOBMAN.CONTROL‘ must be declared
ORA-06550: line 1, column 96:
PL/SQL: Statement ignored

Dreht es sich hierbei um das Package Jobman das das recompiled
werden muß ?

Ja, ein Package namens JOBMAN ist irgendwie korrupt. Du kannst versuchen mit „alter package jobman compile“ das Package wieder valid zu machen. Vielmehr glaube ich aber, dass sich die Prozedur CONTROL in dem Package JOBMAN in Zeile 96 auf ein Objekt bezieht, dass es nach Einspielen Deines Dumps nicht mehr gibt, dass invalid ist oder dergleichen. Einfach mal ein „alter package jobman compile“ anstossen und danach mit „show errors“ gucken, wo’s hängt.

Ciao
Ralf

1 Like

mittlerweile habe ich mal in das log geschaut…

…was allgemein bei Oracle ne gute Idee ist :smile:

ich weiß, bei mir ist das hier so ein beständiges learnig by doing…
Fehlersuche dauert bisweilen bei mir etwas länger.

Errors in file C:\orant\ecca\trace\bdump\eccaLGWR.TRC:

Sagt dieses Trace-File evtl. noch mehr über den Fehler aus?

ich hab geschaut, in dem Tracefile stand nur noch mal der gleiche Fehler drin

Zur Sicherung allgemein: ein online-redo-log würde ich
überhaupt nicht sichern. Lieber vor Start der Sicherung den
Befehl:

alter system archive log current

ok, mal schauen wie ich das hinbekomme, die sicherungen richtet jemand anderes ein

PLS-00201: identifier ‚JOBMAN.CONTROL‘ must be declared

das kann ich mittlerweile nicht mehr nachschauen, da ich ja direkt nach dem Fehler den import wiederholt habe.
hier heißt es immer „hauptsache läuft“…

Vielen Dank an euch beide !!!

grüße

chris

hier heißt es immer „hauptsache läuft“…

Hmm, das ist dann aber hoffentlich keine wichtige Produktiv-DB, oder?

hier heißt es immer „hauptsache läuft“…

Hmm, das ist dann aber hoffentlich keine wichtige
Produktiv-DB, oder?

nee, dann würden die da auch nicht so ne type wie mich dran setzen… :wink:

das sind test und abnahmesysteme…