Warum noch ein Access-Buch?
Für wen ist das Buch?
Jetzt bestellen
+ direkter Download des eBooks!
Nur EUR 59,95!
Fehler gefunden?
Bitte melden!
Wünsche an das Buch?
Her damit!
Was denken die Leser über dieses Buch?
Lesen Sie aktuelle Rezensionen!
Kapitel des noch nicht veröffentlichten Buchs zum Downloaden, Probelesen und Kommentieren
Beispieldatenbanken
Zusätzliches Material

Das Buch im HTML-Format

Für unbestimmte Zeit bieten Addison-Wesley und André Minhorst den kompletten Inhalt des Buchs als Download an. Schauen Sie rein und informieren Sie sich über den Inhalt! Und wenn Ihnen das Buch nützlich erscheint und Sie glauben, dass Sie etwas gelernt haben oder durch das Gelesene sogar etwas Zeit und somit Geld bei Ihrer Arbeit einsparen konnten, können Sie sich ja beim Autor und beim Verlag revanchieren - beispielsweise durch den Kauf dieses Buchs.

Am schönsten wäre es natürlich, wenn Sie das Buch direkt hier bestellen - Sie erhalten das Buch dann direkt vom Verlag, und der Autor und Verlag haben dann noch mehr davon, als wenn Sie es anderswo kaufen.

Danke für Ihr Interesse!

19.6.5 Kopieren und zippen

19.6.6 Sicherungsstrategie

Ein Punkt ist noch offen: Welche Strategie wird beim Sichern verfolgt, das heißt, wann wird gesichert, wie heißen die Dateinamen der Sicherungen und in welchem Verzeichnis befinden sich diese, werden Daten nach einem bestimmten Zeitraum überschrieben und vor allem: Wie teilen Sie dem oder den Benutzern mit, dass in Kürze ein Sicherungsvorgang ansteht? Letzteres ist natürlich nur relevant, wenn die Sicherung tatsächlich während des laufenden Betriebs stattfinden muss und nicht nachts erfolgen kann. Wenn sichergestellt ist, dass nachts niemand auf die Datenbank zugreift, kann man den Vorgang mit einem VB-Skript ausführen, das mit dem Tool Geplante Tasks von Windows aufgerufen wird.

Ein einfaches Skript könnte wie folgt aussehen und wird mit der Datei-Endung .vbs gespeichert:

Set objFSO = CreateObject("Scripting.FileSystemObject")
strZeit = Year(Date()) & Right("0" & Month(date()), 2) _
    & Right("0" & Day(date()), 2) & "_" & Right("0" & Hour(Time()),2) _
    & Right("0" & Minute(Time),2) & Right("0" & Second(Time),2)
objFSO.CopyFile "c:\Nordwind_Backend.accdb", "c:\Nordwind_Backend" _
    & strZeit & ".accdb"

Es kopiert die Datei und fügt dem neuen Dateinamen vor dem Suffix das aktuelle Datum und die Uhrzeit im Format yyyymmdd_hhmmss hinzu. Der resultierende Dateiname würde also beispielsweise Nordwind_Backend20070223_005830.accdb lauten.

Das Tool Geplante Tasks starten Sie mit dem gleichnamigen Eintrag der Systemsteuerung. Im Originalzustand enthält das Tool keine Einträge (siehe Abbildung 19.5).

Abbildung 19.5: Das Tool »Geplante Tasks«

Um einen Aufruf eines Skripts anzulegen, klicken Sie doppelt auf den Eintrag Geplanten Task hinzufügen. Ein Assistent wird gestartet und fragt Sie zunächst nach der auszuführenden Datei. Hier geben Sie die gewünschte .vbs-Datei an und im nächsten Schritt einen Tasknamen und die Frequenz der Ausführung - in diesem Fall »Täglich« (siehe Abbildung 19.6).

Abbildung 19.6: Name des Tasks und Frequenz festlegen

Der folgende Dialog fragt ab, zu welcher Zeit der Task gestartet werden soll und ob dies täglich, nur werktags oder alle x Tage zu erfolgen hat. Außerdem geben Sie hier das Startdatum ein (siehe Abbildung 19.7).

Abbildung 19.7: Angabe der Uhrzeit und der Tage

Schließlich geben Sie den Benutzer samt Kennwort ein, in dessen Kontext der Task durchgeführt werden soll. Gegebenenfalls sollen die Dateien in einem Verzeichnis gespeichert werden, auf das nur bestimmte Benutzer Zugriff haben - beachten Sie dies beim Anlegen des Tasks.

Nach dem Beenden des Assistenten können Sie die Eigenschaften des Tasks mit einem Doppelklick auf den entsprechenden Eintrag in der Liste der geplanten Tasks ansehen.

Dateiname der Sicherung

Im Beispiel des Taskmanagers mit VB Skript haben Sie bereits eine Möglichkeit für den Dateinamen einer Backup-Datei kennen gelernt - dabei wird der Dateiname einfach um die genaue Zeit des Backups erweitert.

Dateien regelmäßig überschreiben

Wenn Sie beispielsweise nur den aktuellen Stand der letzten sieben einzelnen Tage sichern möchten, können Sie am aktuellen Tag jeweils die vor einer Woche angelegte Kopie überschreiben. Sie benötigen dann nur sieben verschiedene Dateinamen, die entweder die Wochentage oder eine entsprechende Zahl im Dateinamen tragen.

Benutzer vor dem Backup benachrichtigen

Unter Umständen möchten Sie die Daten vielleicht mehrmals am Tag sichern, weil es sich um sehr wichtige Informationen handelt, die auch noch regelmäßig geändert werden. In diesem Fall kann das ausschließlich nächtliche Speichern durchaus fatale Folgen haben, beispielsweise wenn kurz vor Feierabend die Datenbank durch einen Netzwerkfehler oder Ähnliches zerstört wird.

Der erste Tipp für diesen Fall ist: Verwenden Sie keine Access-Datenbank, sondern den Microsoft SQL Server 2005, die passende Express Edition oder auch ein Nicht-Microsoft-Produkt wie etwa MySQL - weitere Informationen hierzu erhalten Sie in Kapitel 18, »Sicherheit von Access-Datenbanken« - als Backend.

Diese loggen die Datenänderungen teilweise auch abseits von Backups mit und können die zum Zeitpunkt des Absturzes enthaltenen Daten fast völlig wieder herstellen. Davon abgesehen können Sie etwa einen Dump einer MySQL-Datenbank per Kommandozeile erstellen.

Falls es dennoch eine Access-Datenbank sein muss, gibt es verschiedene Möglichkeiten, die hier nur angerissen werden können:

  • Sorgen Sie dafür, dass alle geöffneten Frontends zur gleichen Zeit eine Meldung ausgeben, dass beispielsweise in fünf Minuten eine Sicherung durchgeführt wird und dazu alle Tabellen, Abfragen, Formulare und Berichte geschlossen sein müssen. Nun stellt sich erstens die Frage, wie Sie die Frontends dazu bringen, zur gleichen Zeit diese Meldung anzuzeigen und dann auch möglichst gleichzeitig alle nicht geöffneten Objekte zu schließen. Eine Rolle wird dabei ein ständig im Hintergrund geöffnetes Formular spielen, das regelmäßig die Zeit abfragt und beim Erreichen eines bestimmten Zeitpunktes die Meldungen anzeigt. Bleibt das Problem mit der synchronen Anzeige der Meldungen: Nicht alle Rechner haben zwingend die gleiche Systemzeit. Sie müssen bei dieser Lösung also dafür sorgen, dass die Zeit zentral ermittelt wird.
  • Die zweite Variante ist, dass Sie den Sicherungsvorgang starten, wenn kein Benutzer aktiv ist. Um zu ermitteln, wann das der Fall ist, könnten Sie immer, wenn ein Benutzer den Fokus auf ein anderes Formular, Steuerelement oder sonstiges Objekt verschiebt, einen Datensatz in einer speziell für diesen Fall angelegten Tabelle im Backend auf die aktuelle Zeit einstellen. Wiederum per ständig geöffnetem, aber am besten nicht sichtbarem Formular wird per OnTimer-Ereignis regelmäßig abgefragt, wann der letzte Benutzer mit der Datenbank gearbeitet hat. Nach einer bestimmten Zeit ohne Aktionen werden dann automatisch die Objekte aller Frontends geschlossen, um Zugriffe auf das Backend auszuschließen, und das Backup erstellt.
  • Nächster Abschnitt:

    19.7 Datenbank reparieren

    © 2006-2008 André Minhorst Alle Rechte vorbehalten.