Hi.
Ich mach mir gerade Gedanken darüber, wie ich eine Datenarchivierung realisiere.
Ich programmiere ein Projekt, welches eine mysql Datenbank verwendet.
Das wird später aus Kostengründen auf einem shared Hosting oder einem vServer laufen.
Das Problem ist folgendes: bei einem shared Hosting oder v-Server ist man grundsätzlich eingeschränkt, was die Backup Möglichkeiten angeht.
Außerdem hat man, gerade am Anfang, noch ein großes Risiko, dass man irgendwelche Sicherheitslücken drin hat.
Ein regelmäßiges Backup ist also erforderlich.
Erster Ansatz ist erst mal, jeden Tag einen DB Dump zu machen und zusammen mit dem gesamten ProjectDir auf den Privatrechner zu laden. Aber das kann man natürlich auch mal vergessen.
Bei meinem Projekt werden auch kostenpflichtige Leistungen angeboten, deren Preise sich öfter mal ändern und wegen scriptgesteuerter Sonderaktionen auch bei einzelnen Usern unterschiedlich sein können.
(z.B. 25% Rabatt für Bestellungen in den ersten 24h nach Anmeldung)
Ein weiteres Problem ist z.B., dass ein User nach der erfolgen Anmeldung die Daten nachträglich ändert oder den Account wieder löscht. Es müsste also auch eine History geschrieben werden, um jederzeit nachvollziehen zu können, wie der Datenbestand bei Auslösung der Bestellung gerade war.
Zur Bereinigung der Datenbank werden dann Historys nach einer gewissen Zeit wieder gelöscht und müssen im Fall der Fälle aus den Dumps wiederhergestellt werden.
Ein Problem an den Dumps ist, dass sich in der Entwicklungsphase das Datenbankenlayout ändern kann und ältere Dumps dann evtl nicht mehr passen. Ausserdem ist es schwierig, einzelne Positionen aus den großen Dump Files rauszufischen.
Nun kam mir die Idee, das Ganze so zu realisieren:
Bei wichtigen Useraktionen wie z.B. Anmeldung, Löschung oder Adressänderung wird die History in einer separaten XML Datei weg gespeichert.
Bei Bestellungen wird die ganze Bestellung in einer XML Datei exportiert und weg gespeichert.
Diese XML Dateien gehen automatisch per eMail an den Administrator, und sind damit dann auch gleich schonmal außerhalb der Hostingumgebung, und für Manipulationen nicht mehr erreichbar.
Solche Sachen gehen als Bestätigungsmail sowieso schon an den User und an den Admin raus. Bei der Admin Mail könnte man dann auch gleich den XML Export mit anhängen.
Zusätzlich könnte man eine Tageszusammenfassung als XML Datei an den Admin rausschicken, so dass wirklich wichtige Sachen notfalls noch im email Konto des Admins liegen.
Was haltet ihr davon?
Ich mach mir gerade Gedanken darüber, wie ich eine Datenarchivierung realisiere.
Ich programmiere ein Projekt, welches eine mysql Datenbank verwendet.
Das wird später aus Kostengründen auf einem shared Hosting oder einem vServer laufen.
Das Problem ist folgendes: bei einem shared Hosting oder v-Server ist man grundsätzlich eingeschränkt, was die Backup Möglichkeiten angeht.
Außerdem hat man, gerade am Anfang, noch ein großes Risiko, dass man irgendwelche Sicherheitslücken drin hat.
Ein regelmäßiges Backup ist also erforderlich.
Erster Ansatz ist erst mal, jeden Tag einen DB Dump zu machen und zusammen mit dem gesamten ProjectDir auf den Privatrechner zu laden. Aber das kann man natürlich auch mal vergessen.
Bei meinem Projekt werden auch kostenpflichtige Leistungen angeboten, deren Preise sich öfter mal ändern und wegen scriptgesteuerter Sonderaktionen auch bei einzelnen Usern unterschiedlich sein können.
(z.B. 25% Rabatt für Bestellungen in den ersten 24h nach Anmeldung)
Ein weiteres Problem ist z.B., dass ein User nach der erfolgen Anmeldung die Daten nachträglich ändert oder den Account wieder löscht. Es müsste also auch eine History geschrieben werden, um jederzeit nachvollziehen zu können, wie der Datenbestand bei Auslösung der Bestellung gerade war.
Zur Bereinigung der Datenbank werden dann Historys nach einer gewissen Zeit wieder gelöscht und müssen im Fall der Fälle aus den Dumps wiederhergestellt werden.
Ein Problem an den Dumps ist, dass sich in der Entwicklungsphase das Datenbankenlayout ändern kann und ältere Dumps dann evtl nicht mehr passen. Ausserdem ist es schwierig, einzelne Positionen aus den großen Dump Files rauszufischen.
Nun kam mir die Idee, das Ganze so zu realisieren:
Bei wichtigen Useraktionen wie z.B. Anmeldung, Löschung oder Adressänderung wird die History in einer separaten XML Datei weg gespeichert.
Bei Bestellungen wird die ganze Bestellung in einer XML Datei exportiert und weg gespeichert.
Diese XML Dateien gehen automatisch per eMail an den Administrator, und sind damit dann auch gleich schonmal außerhalb der Hostingumgebung, und für Manipulationen nicht mehr erreichbar.
Solche Sachen gehen als Bestätigungsmail sowieso schon an den User und an den Admin raus. Bei der Admin Mail könnte man dann auch gleich den XML Export mit anhängen.
Zusätzlich könnte man eine Tageszusammenfassung als XML Datei an den Admin rausschicken, so dass wirklich wichtige Sachen notfalls noch im email Konto des Admins liegen.
Was haltet ihr davon?
Kommentar