Benutzer-Werkzeuge

Action unknown: addtobook

Sidebar

ASV-Webseite

Dokumentation

Hilfe



Druck/Export

Drucken/PDF erzeugen

Backup der Datenbankdatei von ASV-School mit Batch-Dateien (regelmäßige, automatische Datensicherung)

Diese Funktion ist im Aktualisierungsdienst integriert. Lesen Sie dazu Regelmäßige, automatische Datensicherung durch den Aktualisierungsdienst.

Diese Seite wird nicht mehr gepflegt.

Folgende Backupvarianten wurden im Rahmen des Moduls „Installation ASV-School“ für das Moderierten Online-Seminar für angehende ASV-Multiplikatoren erstellt. Es wurde von keinem Mitarbeiter des ASV-Kernteams getestet. Für die Funktionsfähigkeit oder evtl. entstandene Schäden wird keine Gewähr geleistet. Verwendung auf eigene Gefahr!

Problemstellung

Prinzipiell reicht es für ein Backup der Datenbank in der Version ASV-Server School aus, die Datei asv.mv.db im Ordner Server\database des ASV-Installationsverzeichnisses zu sichern. Bei Betrieb von ASV-Server School auf Windows Systemen ergibt sich jedoch das Problem, dass ein laufender DSS-Servers Prozess (und Anmeldung eines Clients) diese Datei für Zugriffe sperrt. Ein Backup durch einfaches Kopieren ist nicht möglich. Eine Möglichkeit, ein Backup der Datenbankdatei zu ermöglichen, ist das Beenden (und anschließende neu Starten) des DSS-Servers. Dies kann automatisch innerhalb des Skriptes erfolgen. Zu Bedenken ist hierbei jedoch, dass es zu unvermittelten Verbindungsabbrüchen bei den Clients kommt. Im ungünstigsten Fall (z.B. wenn die Sicherung beim Anlegen eines neuen Schuljahres den DSS-Server beendet) können Schäden an der Datenbank entstehen. Wird die Ausführung des Skriptes automatisiert, muss dies bei der Wahl des Sicherungszeitpunktes unbedingt berücksichtigt werden.

Für die Sicherung im laufenden Betrieb besteht in Windows Möglichkeit einer Volumenschattenkopie (VSS). Diese Technik wird auch von gängiger Imaging- und Kloningsoftware wie Acronis, Paragon, etc. eingesetzt und ermöglicht es, gesperrte Dateien zu sichern.

Backup durch Beenden und Neustart des DSS-Servers

Folgende Rahmenbedingungen sind für die Funktionsfähigkeit des Skriptes notwendig:

  • Installierter und funktionsfähiger asv-server Dienst
  • Ausführung des Skriptes mit Administrator-Rechten (nur dann kann der Dienst beendet und wieder gestartet werden)
  • Um den Speicherbedarf der Backups zu reduzieren, wird der Ordner database in ein Archiv im Format 7z gepackt. Hierzu muss die kostenlose OpenSource-Software 7-Zip auf dem Rechner installiert sein. (www.7-Zip.org)
  • Wird das Programm 7-zip nicht gefunden, erfolgt eine 1:1 Kopie der Datenbankdatei
  • Im ersten Abschnitt müssen die Umgebungsvariablen an die jeweiligen Bedürfnisse angepasst werden
  • Vor dem Beenden des asv-Server Dienstes ermöglicht ein Countdown, die Ausführung des Skriptes abzubrechen. Dies kann im Falle von verbundenen ASV-Clients bzw. Arbeitsvorgängen, die nicht unterbrochen werden sollen sinnvoll sein.

Laden Sie sich die unten stehende Datei herunter (für den direkten Download auf den Dateinamen klicken).

Klicken Sie die Datei zum Anpassen mit der rechten Maustaste an und wählen Sie „Bearbeiten“. Zur besseren Übersicht sollte unter „Format“ „Zeilenumbruch“ eingestellt werden.

asv_backup.bat
@Echo off
cd /d "%~dp0"
 
::Passen Sie folgende Variablen an:(Ohne \ am Ende)======================
::Installationsverzeichnis von 7z (http://www.7-zip.de/)
set zipdir=C:\Program Files\7-Zip
::Installationsordner des DSS-Servers
set quelle=C:\ASV\Server
:: Zielverzeichnis der Sicherungsdatei
set ziel=D:\asv-backup
::Countdown bis Sicherung 
set timer=30
::Ende der Anpassungen====================================================
 
IF Exist %ziel%/nul (
    GOTO countdown
) ELSE (
    Echo Das Zielverzeichnis '%ziel%' existiert nicht.
    Echo Es wurde NICHTS gespeichert.
    Echo.
    GOTO Ende
)
 
:countdown
 
::Countdown, um Nutzer die Möglichkeit des Abbruches/Beendens von ASV zu geben:                                 
@echo off
cls
for /L %%A in (%timer%,-1,0) do ( 
echo =======================================================================
echo Skript zur automatischen Sicherung der Datenbank ASV-Server School
echo =======================================================================
echo Hierzu wird der Dienst asv-server kurzzeitig gestoppt und neu gestartet.
echo Verbundene ASV-Clients werden nun getrennt und müssen sich neu anmelden!
echo =======================================================================
echo !!!Beginne mit der Sicherung in %%A Sekunden!!!
echo Mit der Tastenkombination "STRG+C" koennen Sie die Aktion abbrechen! 
echo ======================================================================= 
ping localhost -n 2 >nul
cls
)
 
echo Beginne nun mit der Sicherung und beende hierzu den Dienst asv-server
 
net stop asv-server
 
::Generiere Ordnernamen
set ARCHIVNAME=SicherungASV-%DATE:~6,4%.%DATE:~3,2%.%DATE:~0,2%-%TIME:~0,2%.%TIME:~3,2%.%TIME:~6,2%
 
IF  Exist "%zipdir%\7z.exe" (
    GOTO verpacken
) ELSE (
    Echo ============================================
    Echo Kann das Programm 7-Zip nicht finden! 
    Echo Bitte installieren Sie das Programm und/oder  
    Echo passen Sie ggf. den Installationspfad an!
    Echo ============================================
    Echo Erstelle stattdessen eine 1:1 Kopie
    XCOPY "%quelle%\database" "%ziel%\%ARCHIVNAME%\" /S /E /C /H /O /R /Y /D /V
    Echo .
    Echo Eine Sicherung der Datenbank wurde im
    Echo Ordner "%ziel%\%ARCHIVNAME%" erstellt.
    GOTO Ende
)
 
:verpacken
 
::Kopiere und verpacke die Datenbank
"%zipdir%\7z.exe" a "%ziel%\%ARCHIVNAME%.7z" -ssw "%quelle%\database"
::Überprüfe die Archivdatei
"%zipdir%\7z.exe" t "%ziel%\%ARCHIVNAME%.7z"
 
Echo.
Echo Backup-Vorgang abgeschlossen.
Echo.
Echo Eine Sicherung des Datenbankordners wurde in der
Echo Datei "%ziel%\%ARCHIVNAME%.7z" erstellt.
Echo.
 
:Ende
net start asv-server
Pause

Führen Sie die Batchdatei durch Aufruf mit asv_backup.bat in einer Eingabeaufforderung aus, nachdem Sie die Konfiguration an Ihre Verhältnisse angepasst haben.

Backup mit Hilfe von Volumenschattenkopien

Die Erstellung des VSS-Backups erfolgt im Wesentlichen durch das Opensource-Tool hobocopy. https://github.com/candera/hobocopy

Nachdem eine Kopie der Datenbankdatei erstellt wird, komprimiert das Script (bei installiertem 7-Zip) die Datenbankdatei. Wird 7-Zip nicht gefunden, wird die 1:1 Kopie belassen.

In den folgendem Paket sind die notwendigen Dateien (backup.bat, HoboCopy.exe, HoboCopy.pdb) enthalten. In der backup.bat müssen die Umgebungsvariablen angepasst werden. Die Batch-Datei muss mit Adminrechten ausgeführt werden.

Version für 64-bit Systeme (getestet in Win7/10/Server2012)
asv_school_vss_64bit.zip

Sollte ASV noch auf einem 32-Bit System betrieben werden, muss folgendes Paket verwendet werden
asv_school_vss_32bit.zip