truncate table rückgängig machen?
Hallo,
ein Kunde hat leider alle seine Nutzerdaten per "TRUNCATE TABLE `tabelle`" gelöscht obwohl er nur eine bestimmte Gruppe herausnehmen wollte.
Kann man den Befehl irgendwie wieder Rückgängig machen und die Daten wiederherstellen?
Habe nichts gefunden in der Richtung (außer "glaube nein") und schätze mal es sieht schlecht aus. Sollte jemand etwas einfallen wäre ich sehr dankbar... ich schreibe derweil ein Konzept & Angebot über eine Datensicherung ;)
Grüße
ein Kunde hat leider alle seine Nutzerdaten per "TRUNCATE TABLE `tabelle`" gelöscht obwohl er nur eine bestimmte Gruppe herausnehmen wollte.
Kann man den Befehl irgendwie wieder Rückgängig machen und die Daten wiederherstellen?
Habe nichts gefunden in der Richtung (außer "glaube nein") und schätze mal es sieht schlecht aus. Sollte jemand etwas einfallen wäre ich sehr dankbar... ich schreibe derweil ein Konzept & Angebot über eine Datensicherung ;)
Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 109492
Url: https://administrator.de/contentid/109492
Ausgedruckt am: 22.11.2024 um 15:11 Uhr
1 Kommentar
Moin DreamCatcher,
ich will mal nicht gleich mit der Tür ins Haus fallen, aber....
Du hast ja auf unnötige Schnörkel und Details wie etwa Vor- oder Nachname der Datenbank-Version verzichtet...
Ist aber in dem Falle (trotz unterschiedlicher Implementierungsstrategien der drei wahrscheinlichsten Systeme) vollkommen wurscht.
Also kurzgefasst: egal ob Dein User nun auf Oracle, MySQL oder dem altbackenen MSSQL rumgespielt hat:
Falls es keine halbwegs aktuelle Vollsicherung gibt ist alles wech.
Grüße
Biber
ich will mal nicht gleich mit der Tür ins Haus fallen, aber....
Du hast ja auf unnötige Schnörkel und Details wie etwa Vor- oder Nachname der Datenbank-Version verzichtet...
Ist aber in dem Falle (trotz unterschiedlicher Implementierungsstrategien der drei wahrscheinlichsten Systeme) vollkommen wurscht.
- bei Oracle können mit TRUNCTATE weggeknallte Datensätze nicht per ROLLBACK zurückgeholt werden, da sie nicht mit ins UNDO-Log geschrieben werden
- Bei MySQL (ab 5.0.3) können mit TRUNCTATE weggeknallte Datensätze nicht zurückgeholt werden, weil MySQL nicht die Sätze löscht, sondern einfach die Tabelle DROPped und huschhusch wieder neu CREATEd.
- bei MSSQL können mit TRUNCTATE weggeknallte Datensätze nicht zurückgeholt werden, weil ....na ja, geht es wie zu erwarten war, bei den Redmondern etwas behäbiger zu, aber auch dort wird auch nichts satzweise angefasst, sondern einfach alle Speicher-Pages, die von Datensätzen dieser Tabelle beansprucht werden deallokiert. Also freigegeben. Und ins Transaktionsprotokoll wird intelligenterweise die Info geschrieben "TRUNCTATE table bla" und die IDs der freigegebenen Pages/Zylinder auf der Platte (Anm.--->Memo an mich: Nobelpreiskomittee in Stockholm mit in den CC nehmen.). Diese Strategie ist zur Erhaltung von Werten so hilfreich wie ein Glos als Bundeswirtschaftsminister - hält aber länger.
Also kurzgefasst: egal ob Dein User nun auf Oracle, MySQL oder dem altbackenen MSSQL rumgespielt hat:
Falls es keine halbwegs aktuelle Vollsicherung gibt ist alles wech.
Grüße
Biber