Datensicherheit maximieren

    • Offizieller Beitrag

    Ich schreibe gerade an einem Programm für meine Freundin. Im Wesentlichen geht es dabei um das erfassen von Daten direkt in den PC (ohne "Papier-Backup").
    Ein eventueller Datenverlust wäre also sehr ärgerlich, weil die Daten dann komplett verloren wären (das "Gedächtnis-Backup" ist in unserem Alter nicht mehr so zuverlässig :rolleyes: ). Demzufolge will ich mein möglichstes tun, um die Datensicherheit zu gewährleisten.
    Ein paar Stichpunkte, die ich mir als Ziel gesetzt habe:
    - speichern der Daten, nachdem die alte Datei umbenannt wurde, um bei einem Absturz während des speichern wenigstens noch den alten Datenbestand zu haben.
    - von den Daten eine Checksumme erstellen und ebenfalls mit abspeichern, um testen zu können, ob die Daten korrekt gespeichert wurden.
    - nach dem speichern der Daten die Datei nochmal laden und mittels Checksumme mit den Daten im Speicher vergleichen (Verify).
    - wenn das speichern erfolgreich war, noch ein Backup auf eine zweite Platte speichern (ebenfalls mit Verify).
    - die Checksumme dient dann beim laden der Daten der Überprüfung ob die Daten noch korrekt vorliegen (um evtl. Fehler auf dem Datenträger ausschliessen zu können).
    - falls sich bei der Überprüfung zeigt, dass die Daten fehlerhaft sind, dann Zugriff auf die umbenannte Datei bzw. auf das Backup der zweiten Platte.

    Die Fragen an euch sind nun:
    - Haltet ihr das Konzept für ausreichend?
    - Habe ich irgendwelche Denkfehler gemacht?
    - Was sollte man evtl. noch bedenken?

  • Klingt nach einer Hochsicherheits-Anwendung.
    Zuerst würde ich mir die Frage stellen, wovor ich mich schützen möchte. Plattenfehler, Stromausfall, logischer Fehler des Programms etc.
    Darauf würde ich dann die Maßnahmen aufbauen.
    Ich würde vor jedem Speichervorgang eine Kopie der Datei auf dem zweiten Datenträger erstellen (obwohl das eventuell eine Frage der Performance ist). Eine andere Möglichkeit wäre, den Schreibvorgang auf Platte 1 und 2 hintereinander vom Skript ausführen zu lassen. Dann hast Du immer mind. 1 vollständige Datei.
    Eine Prüfsumme (CRC etc.) wäre fein, benötigt aber auch Performance. Könnte man gut im ADS ablegen.
    Im Skript musst Du auch sicherstellen, dass nach jedem Schreibvorgang der Puffer auch auf Platte geschrieben wird.

    • Offizieller Beitrag

    Also Hochsicherheits-Anwendung sicher nicht. An den Daten hängen auch keine Menschenleben oder so. Es handelt sich "nur" um unsere Vogelbeobachtungsdaten. ^^
    Es wäre also "nur" ärgerlich, wenn die Daten verloren gingen, weil da dann eine Menge Arbeit hintersteckt.
    Ach so ja, ich brauche ja eigentlich die Datei vorm speichern gar nicht umbenennen, da ich ja sowieso schon das Backup auf der zweiten Platte habe. Das sollte ja reichen.
    Wie meinst Du das mit "Puffer auf die Platte" schreiben? Wird das beim FileClose nicht automatisch gemacht? Wenn nein, wie kann man das bewerkstelligen?

  • Eben. FileClose ist eine Möglichkeit sicherzustellen, dass die Daten auf der Platte landen. Die andere ist FileFlush.
    Guter Lesestoff zum Thema Backup ist diese Seite. Wenn Du das alles berücksichtigst, dann sind Deine Daten sicher!