Microsoft SQL 2008 Standard Server Frage

Mitglied: pworld

pworld (Level 1)

28.04.2010 um 09:58 Uhr, 3329 Aufrufe, 2 Kommentare

Ablauf DB und Trans Action Log

Ich habe mal eine kleine Frage.

Bei einem SQL 2008 Server. Wie läuft es mit dem Trans Action Log und DB ab?

Ich habe es eigentlich so gelernt das beschreibe ich folgendermassen:

Ein Programm oder eine App pflegt zum Beispiel mit einem Program oder Webfrontend Daten ein.

Diese werden dann zuerst ins Trans Action Log geschrieben, wenn diese Transaction abgeschlossen ist wird dieser der DB übermittelt. Die DB geantwotet dann Transaction sauber übermittelt und sicher.

So habe ich das zumindestens gelernt.

Was für einen Nachteil hätte es wenn man einen SQL Server ohne Transaction Log betreiben würde?
Mitglied: 32067
28.04.2010 um 10:50 Uhr
Hallo,

jede abgeschlossene Änderung (genauer: Die Änderungen an Blockinhalten, die durch das Statement entstehen) geht erstmal in das Transaction Log. Erst wenn das Transaction Log auf Festplatte geschrieben ist, geht das Ok synchron an die Anwendung zurück.

Auf dem Server läuft jetzt ein zweiter Prozess, der asynchron die Änderungen aus dem Transaktion Log in das eigentliche Datenfile übernimmt. Die übernommenen Änderungen werden entsprechend im Log markiert. Egal wann die Datenbank nach der Bestätigung der Änderung umfallen sollte, nimmt man Datenfile und Transaction Log zusammen, kann ein konsistenter Zustand hergestellt werden (kann man im Log des Servers beim Restart sehen, Transactions rolled back bzw rolled forward).

Was mit den übernommenen Änderungen im Log-File passiert, hängt von den Modus ab, in dem die DB läuft: Bei Simple wird der Platz automatisch wieder freigegeben, bei Full passiert das erst nach einer Transktionlog-Sicherung. Warum sollte man die sichern ? Weil man mit den ununterbrochenen Transaktion-Logs nach einer Vollsicherung ein Transaktionsgenaues Restore machen kann und nicht nur auf die Zeitpunkt einer Vollsicherung zurückkommt.

Warum macht man sich den Aufwand und ändert nicht direkt das Datenfile ? Man muss Transaktionen auch zurücknehmen können (Rollback). Dafür braucht man auch den Zustand vor der Änderung, d.h. mit einer Version des Datenbestandes kommt man nicht hin.

Wenn man auf Transaktionen verzichtet geht es auch ohne, bei alten MySQL mit MyISAM war das z.B. so.
Mitglied: pworld
29.04.2010 um 16:58 Uhr
Ah Danke jetzt ist es mir klarer. Ich muss das ganze mal wirken lassen.
Titel: Microsoft SQL 2008 Standard Server Frage
Content-ID: 141622
Art des Inhalts: Frage
Ausgedruckt am: 27.05.2019 um 04:56:16 Uhr
URL: https://administrator.de/contentid/141622