MySQL: Mehr Sicherheit bei Datenbank-Wartung

Die beiden Datenbank-Treiber InnoDB und BDB von MySQL verfügen über einen Transaktions-Mechanismus. Der soll eigentlich die Integrität bei mehrstufigen Datenbankoperationen sichern, schützt Sie aber beispielsweise auch bei manuellen Wartungsarbeiten vor Unfällen.

Nehmen Sie zum Beispiel an, Sie möchten alte oder zum Löschen markierte Datensätze aus einer Tabelle entfernen. Dabei machen Sie aber einen Tippfehler, der die Tabelle komplett löscht. Statt der erwarteten 10-20 Datensätze meldet die MySQL-Konsole dann vielleicht 2.000 gelöschte Zeilen. Hätten Sie das innerhalb einer Transaktion ablaufen lassen, würde der Befehl ROLLBACK genügen, um die Löschungen zurückzunehmen.

Rollback mit MySQL

Um dieses Sicherheitsnetz zu verwenden, geben Sie beim Start jeder Wartungssitzung einmalig dieses Kommando ein:

SET AUTOCOMMIT=0

Denn mit dem standardmäßig aktiviertem Autocommit wird nach jedem Befehl eine Transaktion abgeschlossen. Führen Sie nun die geplanten Änderungen durch und überprüfen danach durch geeignete Abfragen, ob alles in Ordnung ist.

Erst, wenn Sie den Befehl COMMIT eintippen, werden Ihre Änderungen dauerhaft und für alle anderen Nutzer sichtbar in die Datenbank geschrieben. Ein ROLLBACK stellt dagegen den Zustand zum letzten COMMIT oder dem Start der MySQL-Konsole wieder her.

Beim Verlassen der Konsole müssen Sie den Autocommit nicht wieder aktivieren, da dies eine Einstellung ist, die mit jeder neuen Sitzung wieder ihren Standardwert einnimmt.

Mit dem aktuellen phpMyAdmin 2.7.0 funktioniert diese Arbeitsweise übrigens nicht, weil das Tool offensichtlich nach jedem Befehl die Verbindung beendet, was einen automatischen impliziten COMMIT beinhaltet.

Ähnliche Beiträge

    None Found