Problemstellung:
Wie kann ich in MS-Access ein Backup des Backends täglich anlegen?
Voraussetzungen:
Das Bsp ist ab A00 lauffähig.
- tk_Backup_FE00.mdb,
das Backup Tool muss sich im Verzeichnis „C:\tk_Backup“ befinden
-tk_Backup_BE00.mdb,
das Backend für das Bsp muss sich im Verzeichnis „C:\tk_Backup \Backend“ befinden
- sevZip32.dll enthält die Zip- und Unzip-Algorithmen
Die DLL muss sich im Windows-System Verzeichnis befinden
Diese DLL ist eine C-DLL und muss nicht registriert werden.
Die Funktionen werden per DECLARE-Anweisung eingebunden
Wobei sich die Pfadangaben hier nur auf das Bsp beziehen und nicht zwingend sind.
Grundidee:
Es soll eine Möglichkeit geschaffen werden, ein Backuplösung zu erstellen,
die es ermöglicht jeden Wochentag ein Backup des Backends zu erstellen.
Nach einer Woche wird das Backup automatisch überschrieben.
Alle Informationen über das Backup werden in eine INI-Datei geschrieben.
Die Backup Kopie des Backends wird automatisch komprimiert.
Die Ausgabe erfolgt wahlweise als MDB- oder ZIP-Datei.
Benötigte Objekte:
Formulare: frm_Backup zum Ausführen des Backup’s bzw. Restore
Module: cls_FileDialog Datei- und Verzeichnis Öffnen Dialog
mod_Funktionen alle benötigten Sub’s und Funktionen
mod_Zip_Funktionen Prozeduren für ZIP und UNZIP
Name und Pfad des Backends und Ausgabeoption (MDB- oder ZIP-Datei)
Das Formular frm_Backup ist zur Steuerung des Backup’s bzw. Restore vorgesehen.
die Art der Ausgabe bestimmt.
Der Button „Daten sichern“ erstellt das Backup und schreibt die INI-Datei.
Für jeden Wochentag wird das Backup in einen extra Ordner erstellt.
Ist dieser nocht nicht vorhanden wird dieser erstellt.
z.B.:
C:\tk_Backup \Backend\Backup\Mo
C:\tk_Backup \Backend\Backup\Di
Ist die Woche um, wird das Backup von letztem Montag mit dem neuen vom
Montag überschrieben.
Durch eine Klick auf den Button „Daten sichern“ wird die Funktion „Save_BE“ aufgerufen.
Die Funktion erwartet folgende Parameter:
Public Function Save_BE(strPath As String, strDBNameBE As String, intOutput As Integer) As Boolean
strPath As String = Pfad des Backupverzeichnisses
strDBNameBE = Name und Pfad des Backend
intOutput = 1=MDB, 2=ZIP
Rückgabewert der Funktion: True = Backup Erfolgreich, False = Backup Fehler
Diese Funktion arbeitet in mehreren Schritten:
1. ermittelt ob die benötigten Verzeichnisse vorhanden sind, und legt diese bei Bedarf an.
2. Das Backend wird in das temporäre Verzeichniss kopiert.
3. Schreiben der INI-Datei
4. Die Backup-Datei wird mittels CompactDatabase komprimiert.
5. Kopieren des Backups in das richtige Unterzeichnis
Die Erstellung und Komprimierung des Backups und die INI-Datei werden in einem temporären Verzeichnis durchgeführt:
C:\tk_Backup \Backend\Backup\BE_Temp um bei Fehlern nicht ein bestehendes Backup
zu überschreiben.
Sollte die Ausgabe in einer ZIP-Datei erfolgen wird eine ZIP-Datei erstellt und die MDB-Datei gelöscht.
Die „Backup.ini“ Datei enthält folgende Informationen:
- Pfad und Name des Backends temporär
- Pfad und Name des Backends im Wochentagsbackup-Verzeichnis
- Datum des Backups
- Uhrzeit des Backups
- Ausgabeformat des Backups
Diese ruft Routinen aus der sevZip32.dll auf.
Da diese DLL keine Freeware ist, gehe ich hier nicht weiter auf die Funktionalität ein.
Im rechten Bereich befindet sich der Restore-Teil.
In der Optionsgruppe werden alle vorhandenen Backups für jeden Wochentag angezeigt.
Ist es nicht vorhanden erscheint „...nicht vorhanden“ als Buttonbeschriftung.
Die Beschriftung erfolgt durch das Auslesen der INI-Datei für jeweiligen Wochentag.
Dies wird durch die Funktion „ReadINI“ realisiert.
Der Funktionaufruf und Parameter:
Public Function ReadINI(strBEPath As String, strWT As String) As String
strBEPath As String = Pfad des Backupverzeichnisses
strWT = Kurzbezeichnung des Wochentages
Für den Montag-Button wäre z.B. der Aufruf:
Me.tgl_Mo.Caption = ReadINI(„C:\tk_Backup\Backend\Backup“, "Mo")
Soll das Backend wieder aus einer Backup-Datei hergestellt werden,
muss nur das entsprechende Backup in der Optionsgruppe
ausgewählt werden. Danach wird der Button „Daten wiederherstellen“ aktiviert.
Mit einem Klick auf diesen Button wird die Funktion „Restore_BE“ aufgerufen.
Der Funktionaufruf und Parameter:
Public Function Restore_BE(strBE_Path As String, strDBNameBE As String, intWT As Integer) As Boolean
strBE_Path = Pfad des Backupverzeichnisses
strDBNameBE = Name und Pfad des Backend
intWT = Wochentag der gewählten Sicherung
Rückgabewert der Funktion: True = Restore Erfolgreich, False = Restore Fehler
Diese Funktion arbeitet in mehreren Schritten:
1. Auslesen der INI-Datei
2. zurückkopieren des Backups.
3. bei Bedarf Unzip des Backups
Die Dekomprimierung der ZIP-Datei erfolgt durch die Funktion „Unzip_File“.
Diese ruft ebenfalls Routinen aus der sevZip32.dll auf.
Ist das Backend in Benutzung erfolgt eine Fehlermeldung.
Wie kann ich das in der Praxis nutzen?
Kopiere alle in der Bsp-DB enthaltene Objekte in dein Frontend.
Rufe das Formular frm_Backup auf und aktualisiere die Pfade für deine Zwecke.
Die Datei sevZip32.dll muss in das Windows System32-Verzeichnis kopiert werden.
Danach steht einem Backup nichts mehr im Wege.
Zusammenfassung
Diese Bsp-DB erhebt nicht den Anspruch auf Vollständigkeit und auch nicht
vollständige Sicherheit.
Der Urheber haftet nicht für eventuell auftretende Datenverluste oder sonstige Schäden
durch diese Bsp-Datenbank oder deren auszugweisen Nutzung.
Backup-Lösung für tägliche Sicherung, Ausgabe wahlweise auch als Zip-Datei
ab A00
Die Setup-Datei enthält eine Version ab A00
Ähnliche Artikel
Weiterlesen...