Zum Inhalt springen

[Tipps] Deadlocks bei Oracle


Ganymed

Empfohlene Beiträge

Hallo zusammen,

wir haben hier leider ein Datenbankproblem.

Wir haben ständig Deadlocks und wir haben keine Ahnung wie wir die beheben können.

Bei mir rufen dann die Anwender an, und ich kann nichts anderes machen als die Datenbank neustarten zu lassen.

Als Tool benutzen wir den PL/SQL Developer.

Kann ich mit Hilfe dieses Tools in irgendeiner Form Deadlocks auflösen? In der Word-Hilfe hab ich dort nichts gefunden und auch durch suchen im Tool hab ich nichts gefunden.

Wär super, wenn ihr nen Tipp hättet, dann könnte ich den Anwendern schneller helfen,als immer nur zu warten oder den Neustart machen zu lassen.

LG,

Ganymed

Link zu diesem Kommentar
Auf anderen Seiten teilen

Huhu Ganymed,

also, so einfach `nen Tip, der das schnell lösen kann, habe ich leider nicht parat, vielmehr habe ich etliche Fragen ...

Ein Deadlock bedeutet ja, dass mind. 2 Prozesse eine gleichartige Aktion (update z.B.) auf einen Record ausführen wollen und der Record gelockt ist. Die 2 Prozesse behindern sich gegenseitig, mit viel Glück kommt einer von beiden überhaupt durch.

Erstmal solltet ihr herausfinden, welcher Prozess, also Statements im Logfile mit dem Hinweis auf Deadlock in Verbindung stehen.

Ein Transaktionsmanagement mit Rechtevergabe wirkt Wunder.

Aber meines Wissens bietet da Oracle eine Menge Möglichkeiten. Da ich aber nicht in der Datenbankadministration drinstecke, sondern in der Entwicklung, gehe ich davon aus, dass Dir andere noch viel besser helfen können.

Bei uns ist in der nächtlichen Batchverarbeitung schon vorgekommen, aber seitdem dürfen gewisse Programme nicht mehr parallel laufen, es gibt eine Jobsteuerung über Stati bei uns. Im täglichen Betrieb sind Deadlocks natürlich absolut tödlich.

Viel Glück bei der Problembehebung und viele Grüße,

JCB

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Frage ist, warum sollte man da überhaupt was machen? Oracle löst die Dinger eh von alleine auf (wenn auch nicht sofort).

Ansonsten hilt Note 62365.1 im Metalink weiter.

Jau, super Tipp... Ich kann nciht ewig und 3 Tage warten, bis die Deadlocks weg sind... Heute morgen hats z.B. 2 1/2h gedauert... :rolleyes:

Die Datenbank (bz. das Modell) ist eingekauft. Leider kann man da rein Rechtlich nicht viel dran ändern. Über die Db-Administration konnten wir auch schon die Übeltäter herausfinden und warten auf eine Lösung.

Nur: Ich will diese blöden Locks schnell wieder loswerden ohne warten zu müssen.

Der PL/SQL Developer scheint mir da keine Hilfe zu sein.

Gibts vielleicht auch ein Statement, was man da notfalls absetzen kann?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich kann bestätigen das die deadlock behandlung sich zu 9i deutlich verbessert hat. Also updaten....

Ausserdem können die User mithelfen (je nachdem wie viele und welche Aufgabe, bei uns währe dieser Vorschlag nicht möglich :) ).

Ihr müsst herausfinden an welchen stellen im Programm die Transactionen zu ende sind (commit gesetzt wird). D.h. wenn die User eine Handlung (Transaktion) möglichst zügig durchführen, so wird das Problem weniger, als wenn ich eine neue Adresse für einen Kunden eingebe und dann noch eine Rückfrage über irgendeinen Status kommt, der mit zur Transaktion gehört, ich diesen nicht beantworte, sondern erstmal Kaffe trinken gehe. Dann ist die warscheinlichkeit hoch, das ein anderer Anwender mir dazwischenfunkt weil er gerade eine Bestellung bearbeitet und ein deadlock entsteht.

Unseren Anwendern währe das wie gesagt unmöglich zu verklickern (1000 Anwender), aber wie gesagt, hängt vielleicht auch von der frustrationsgrenze der Anwender ab.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nochmal ein paar Infos:

Welches Patchlevel bei 8i?

Welche ORA-Fehlermeldung im Alertlog?

Aus metalink: Zeit die Oracle brauch um ein Deadlock zu erkennen und eine Session zurückzurollen:

Typically no more than 3 seconds for a data deadlock (ORA-00060).

Scheint also kein Data Deadlock zu sein... wenns 2 1/2 std dauert

Metalink:

perhaps you are talking about KGL deadlocks (ORA-04020). There are

a couple of DDL operations (e.g. splitting partitioned IOTs)

which in your version of Oracle handles the kgl pins incorrectly.

When this happens, you find that competing processes wait for

the DDL to complete (and a partition split can take a long time)

and may then report a 4020 deadlock if they too have been trying

to do similar DDL

Was für DDL's laufen ? wird da irgendein Batch-job zur Partition Maintenance laufen gelassen? eventuell sogar parallel ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...