Klaus Mock: Rollbacks und solche Dinge...

Beitrag lesen

Hallo,

Das Locking hat den beschriebenen Nachteil: Wer löscht den Lock auf einen Datensatz?

Jow - das ist wirklich ein Problem, evntl. im Intranet lösbar wo sich die user telefonisch oder durch Zuruf verständigen können...

Oder aber durch einen cronjob (oder vergleichbares), der 'alte' Locks einfach wieder aufhebt.

Eventuell ist es auch eine gute Idee, sämtliche ändernden Zugriffe auf die DB in ein Logfile oder eine Log-Tabelle zu schreiben. Damit könnte man im Notfall den vorherigen Zustand wiederherstellen. Beispielsweise könnte man alle UPDATEs und INSERTs dort direkt ablegen und ggf. einfach noch mal bis zu dem gewünschten Zeitpunkt auf die DB loslassen. Sowas dürfte aber ziemlich aufwendig sein.

Die Idee ist wirklich gut, das ist die Grundlage für Rollbacks und in jedem RDBMS implementiert. Alternative für eigene Entwicklungen: RCS (Revision Control System).

Das wegschreiben eines Datensatzes bei jedem UPDATE ist dann noch relativ einfach, wenn man eine Datenbank verwendet, bei denen Trigger bzw Storder-Procedures möglich sind. Ein BEFORE UPDATE-Trigger schreibt beispielsweise den ganzen Datensatz in eine Archiv-Tabelle (vielleicht mit Timestamp und einer Benutzerkennung) aus der dann ältere Stände restauriert werden können.

Grüße
  Klaus