Ich habe eine Reihe von Skripten parallel als Nohup auf einem AIX-Server mit Oracle 10g Host ausgeführt. Diese Skripte werden von jemand anderem geschrieben und sollen gleichzeitig ausgeführt werden. Alle Skripts führen Aktualisierungen für eine Tabelle durch. Ich erhalte den Fehler,ORA-00060: Deadlock beim Warten auf Ressource
ORA-00060: Deadlock erkannt, während für Ressource wartet
Als ich für diese googeln, fand ich, http://www.dba-oracle.com/t_deadly_perpetual_embrace_locks.htm
Obwohl die Skripte ausführen Gleichzeitig führen sie Updates für verschiedene Datensätze der Tabelle durch, die durch die WHERE
-Klausel ohne Überlappungen von Datensätzen zwischen ihnen bestimmt werden.
So hätte dies den Fehler verursacht ?.
Tritt dieser Fehler unabhängig davon auf, wo die Aktualisierungen für eine Tabelle ausgeführt werden ?.
Sollte ich gleichzeitige Aktualisierungen auf einer Tabelle jederzeit vermeiden ?.
Seltsamerweise fand ich auch auf dem nohup.out-Protokoll, PL/SQL successfully completed
nach dem oben genannten Fehler.
Bedeutet dies, dass Orakel aus dem Deadlock wiederhergestellt und die Updates erfolgreich abgeschlossen hat oder sollte ich diese Skripts seriell wiederholen? Jede Hilfe wäre willkommen.
Vielen Dank im Voraus.
Vielen Dank für die Info. – wowrt
Link ist sehr nützlich! Sehr einfache Erklärung. – CGK