Mulenker Geschrieben 29. September 2008 Teilen Geschrieben 29. September 2008 Hallo , ich habe ein Programm, das daten in eine mssql Datenbank schreibt. Leider weden höchstwahrscheinlich einige Transaktionen von diesem Programm nicht committed beim beenden. wenn ich nun die Datenbank mit osql und sp_attach_db öffne bekomme ich folgende Meldung: 20 transactions rolled forward in database 'xxx' (6). 0 transactions rolled back in database 'xxx' (6). Wie kann ich herausfinden, dass es noch offene Transaktionen gibt, ohne diese 'forward' zu 'rollen' ??? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
RipperFox Geschrieben 29. September 2008 Teilen Geschrieben 29. September 2008 Hallo , ich habe ein Programm, das daten in eine mssql Datenbank schreibt. Direkt oder via MSSQLServer?? Wird zu DB zu früh ausgehängt? (z.b. das ekelhafte Attachen beim c# Express) Leider weden höchstwahrscheinlich einige Transaktionen von diesem Programm nicht committed beim beenden. wenn ich nun die Datenbank mit osql und sp_attach_db öffne bekomme ich folgende Meldung: 20 transactions rolled forward in database 'xxx' (6). 0 transactions rolled back in database 'xxx' (6). Forwards gibts nur bei nem Server-Neustart - ergo: - Alles wurde wohl committed (sonst würde er nen roll-back machen) - SQLServer kam allerdings nicht dazu, alle Daten aus dem Transaction-Log in die reale DB reinzuschreiben ("hart" beendet, ausgehängt, etc.) Wie kann ich herausfinden, dass es noch offene Transaktionen gibt, ohne diese 'forward' zu 'rollen' ??? Ehrlich gesagt: kein Plan.. Aber: Die Kommandos CHECKPOINT und SAVE TRANSACTION zwingen den SQL-Server zum flushen auf Disk. Evtl. das ausführen, bevor der SQL-Server heruntergefahren wird. Näheres zum Transaction-Log unter Know the Transaction LOG - Part - 1 - B Esakkiappan's SQL Thoughts Greets.. Ripper Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 29. September 2008 Teilen Geschrieben 29. September 2008 Crosspost Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Mulenker Geschrieben 30. September 2008 Autor Teilen Geschrieben 30. September 2008 Direkt oder via MSSQLServer?? via MSSQLServer Wird zu DB zu früh ausgehängt? (z.b. das ekelhafte Attachen beim c# Express) Dieses Programm ist Standartsoftware und somit ist auch der Quellcode nicht zugängig. Deswegen kann ich nur vermuten, dass die DB zu früh ausgehängt wird. Aber: Die Kommandos CHECKPOINT und SAVE TRANSACTION zwingen den SQL-Server zum flushen auf Disk. Evtl. das ausführen, bevor der SQL-Server heruntergefahren wird. Diese Kommandos bringen mich leider nicht weiter, da ich herausfinden muss ob etwas schiefgegangen ist. Gibt eine Möglichkeit das aus dem Transactionlog zu lesen ? Gruß Mulenker Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
RipperFox Geschrieben 30. September 2008 Teilen Geschrieben 30. September 2008 via MSSQLServer Warum musst du die dann erst attachen? Hängt die "StandarDsoft" die etwa aus? Was sacht das Log deines SQL-Servers (vieleicht verreissts den ja - und nur dann wäre das so wirklich dein Problem) Dieses Programm ist Standartsoftware und somit ist auch der Quellcode nicht zugängig. Deswegen kann ich nur vermuten, dass die DB zu früh ausgehängt wird. If you ain't broke it - ain't fix it Gibt eine Möglichkeit das aus dem Transactionlog zu lesen ? DBCC log und DBCC loginfo gibts noch als undokumentierte Befehle.. aber das bringt dir nix: Diese Kommandos bringen mich leider nicht weiter, da ich herausfinden muss ob etwas schiefgegangen ist. Und wie bitte willst du das wirklich feststellen? Da nicht quelloffen -> Du weisst eh nicht, was die Soft (evtl. falsch) macht und selbst wenn könntest du es nicht ändern. Ergo: Sinnlos in der Software den Fehler zu suchen - entweder liegt's an eurer Umgebung (SQLServer) oder der "Standardsoft"-Hersteller hat 'nen Bock geschossen.. Dann: Knall's dem Hersteller vorn Latz, inkl. Bugreport.. Grüße Ripper Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Mulenker Geschrieben 1. Oktober 2008 Autor Teilen Geschrieben 1. Oktober 2008 Danke nochmal für die Antworten, aber ich glaub ich hab mein Problem noch nicht richtig dargestellt. Mir geht es weder darum die StandartSW zu fixen noch dem Hersteller einen vor den Latz zu knallen Die Problemstellung: Gegeben ist eine Datenbank bei der 20 Transaktionen nicht 'forward' ge-'rolled' sind. Ich Muss nun herausfinden, ob diese Datenbank Transaktionen enthält die noch 'forward' ge-'rolled' werden müssen. Da ich die Datenbank Schreibgeschützt öffnen muss (nicht mit der StandartSW) werden dieTransaktionen auch nicht 'forward' ge-'rolled' und ich bekomm nix von den Änderungen in der Datenbank mit. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
RipperFox Geschrieben 1. Oktober 2008 Teilen Geschrieben 1. Oktober 2008 Grade entdeckt: SQL Log Rescue - Undo for SQL Server ist nen LogBrowser für's Transaction-Log. Aber nochmal: Transaktionen, welche beim Einbinden 'forward' ge-'rolled' werden deuten auf einen Fehler bei deiner Standar-D-Software hin - Schreib nen Bugreport! Grüße Ripper PS: Bitte keine "Stand-arT" mehr - das verursachtr bei mir Augenkrebs.. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 1. Oktober 2008 Teilen Geschrieben 1. Oktober 2008 PS: Bitte keine "Stand-arT" mehr - das verursachtr bei mir Augenkrebs.. Wieso? Was hast Du denn gegen eine Standarte? Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Mulenker Geschrieben 1. Oktober 2008 Autor Teilen Geschrieben 1. Oktober 2008 Aber nochmal: Transaktionen, welche beim Einbinden 'forward' ge-'rolled' werden deuten auf einen Fehler bei deiner Standar-D-Software hin - Schreib nen Bugreport! Das war mir schon klar, ist auch nicht die Antwort auf meine Frage. Trotzdem danke, Gruß Mulenker PS Standartsoftware 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.