Ganymed Geschrieben 5. Dezember 2005 Teilen Geschrieben 5. Dezember 2005 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
JCB Geschrieben 5. Dezember 2005 Teilen Geschrieben 5. Dezember 2005 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
1226 Geschrieben 5. Dezember 2005 Teilen Geschrieben 5. Dezember 2005 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ganymed Geschrieben 5. Dezember 2005 Autor Teilen Geschrieben 5. Dezember 2005 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... 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
1226 Geschrieben 5. Dezember 2005 Teilen Geschrieben 5. Dezember 2005 Gibts vielleicht auch ein Statement, was man da notfalls absetzen kann? ja, gibt es: alter system kill session Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
johnhaltonx Geschrieben 5. Dezember 2005 Teilen Geschrieben 5. Dezember 2005 Genau, einfach eine der blockenden Sessions abschiessen, dann sollte es sofort weitergehen, aber mal ne andere Frage: Welches Oracle Release ? Soweit ich weiss ist die Deadlock-Behandlung in 9i und 10g deutlich verbessert worden. Seid ihr noch auf 8i? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ganymed Geschrieben 5. Dezember 2005 Autor Teilen Geschrieben 5. Dezember 2005 Wir haben leider 8i... Hmmm... Ok abschiessen. Andere Möglichkeit habe ich leider nicht Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mme Geschrieben 6. Dezember 2005 Teilen Geschrieben 6. Dezember 2005 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
johnhaltonx Geschrieben 6. Dezember 2005 Teilen Geschrieben 6. Dezember 2005 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 ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.