Jüngstens rief uns ein Unternehmen aus der NRW-Landeshauptstadt Düsseldorf an und erkundigte sich nach dem Sicherungsverzeichnis seiner DATEV Buchhaltungssoftware. Gemäß Aussage des Anrufers wies die Datenbank mehrere Lücken auf. Wie wir dann per Fernwartung herausfanden, wurden von der DATEV-Datenbank gar keine Sicherungen gemacht, geschweige denn regelmäßige Sicherungen. Und es kam noch schlimmer: Die Daten liessen sich aufgrund von Festplattenfehlern auch nicht wiederherstellen. Mit diesem Artikel wollen wir zeigen, wie sich ein DATEV-System mit wenig Aufwand lokal sichern lässt. Wenn das Sicherungsziel ein RAID-System ist, dann hat man damit schon mal die halbe Miete gegen Datenverlust.
Alternative zur Datensicherung im DATEV-Rechenzentrum
Die Finanzdaten eines Unternehmens sind aus leicht verständlichen Gründen von großer Bedeutung. Gehen diese verloren, drohen neben den internen Querelen auch noch unangenehme Diskussionen mit Finanzamt und Sozialbehörden.
DATEV-Software bietet von Haus aus eine bequeme Backup-Lösungen an. Diese lädt neue Daten automatisch in regelmäßigen Abständen in das DATEV-eigene Rechenzentrum hoch und verwart sie dort revisionssicher. Das Rechenzentrum steht in Deutschland, erfüllt also deutsche Datenschutzvorschriften, und man kann davon ausgehen, dass die Daten dort gut geschützt liegen. Ein Aber gibt es natürlich schon: DATEV – nicht gerade bekannt für knapp mittelstandsfreundliche Preise – stellt die Rechenzentrumskapazitäten nicht kostenlos zur Verfügung.
Eine Alternative zum Backup in der DATEV-Cloud ist ein lokales Backup der DATEV-Daten. Die Daten werden also auf einem eigenen Datenträger gespeichert und nicht zu DATEV hochgeladen. Dabei sollte das Wort “lokal” nicht zu wörtlich interpretiert werden. Neben einem Backup kann auf eine angeschlossene Festplatte die Sicherung natürlich auch auf einen Speicher im lokalen Netzwerk erfolgen. Letzters bietet sich tatsächlich an, da sich dadurch problemlos die Sicherung auf einem redundanten Datenträgerverbund, also einem RAID, verwirklichen lässt.
Letzeres haben wir für das betroffene Unternehmen schliesslich eingerichtet – den Schaden konnten wir damit zwar nicht beheben, wohl aber zukünftigen Schaden vermeiden. Zielanforderung war eine zuverlässige automatische Sicherung, so dass Eingabefehler vermieden und ein Vergessen ausgeschlossen werden können. Das Ergebnis war ein Batch-Skript, dass alle notwendigen Aktivitäten in regelmäßigen Abständen ausführt. Sicherungsziel war ein Netzlaufwerk, dass auf einem RAID 1 lag.
DATEV – Sicherungsskripte
Tatsächlich handelt es sich nicht um eine einzelnes Skript, sondern um 3 Skripte in Kombination mit einem Master-Skript. Die Aufgabe des Master-Skripts ist es, die Skripte nacheinander zu starten, die erfolgreiche Rückmeldung abzuwarten und dann das nächste Skript zu starten. Das erste Skript beendet den DATEV-Dienst, das zweite führt die eigentliche Sicherung durch und das dritte startet den Dienst wieder. Dieses Vorgehen hat den Vorteil, dass man so sicher gehen kann, dass der Dienst von DATEV wirklich beendet und am Ende wieder gestartet wird. Wenn der Dienst noch läuft, wenn die Sicherung startet, dann können wichtige Datenbankdateien nicht gesichert werden.
Diese drei Skripte stellen wir nachfolgend vor. Änderungen wie die Dateipfade der Quelle und des Ziels müssen natürlich selbst noch vorgenommen werden. Diese sind jeweils in #-Zeichen gesetzt
prejob.bat: Skript zum Beenden des DATEV-Dienstes
net stop MSSQL$DATEV_DBENGINE /Y exit
DatevSicherung.bat: Skript zum Sichern des DATEV-Systems
CLS @ECHO OFF COLOR 1F REM **************************************************************************** REM ** SCRIPT : DATEV-Sicherung REM ** BESCHREIBUNG: Führt die Sicherung des Datev-Datenbankverzeichnisses durch REM ** AUTOR : Christopher Schütz - ionas REM ** VERSION : 23.06.2017 REM ** REM ** - Für Umlaute in ECHO: ä=„ ö=” ü= Ä=Ž Ö=™ Ü=š REM **************************************************************************** CHCP 1252 REM KONFIGURATION ---------------------- REM Quell- und Zielverzeichnis angeben. WICHTIG: REM Verzeichnisse die Leerzeichen enthalten müssen mit Anführungszeichen umschlossen werden REM Kein Backslash \ am Ende, außer wenn komplettes Laufwerk synchronisiert werden soll SET quelle=#Bitte hier das Quellverzeichnis eingeben# SET ziel=#Bitte hier das Zielverzeichnis eingeben# REM ------------------------------------ CHCP 850 CLS ECHO. ECHO ++++++++++++++++++++++++++ ECHO +++DATEV-DATENSICHERUNG+++ ECHO ++++++++++++++++++++++++++ ECHO. SET timestamp=%date:~-4%%date:~3,2%%date:~0,2%-%time:~0,2%%time:~3,2% ECHO. ECHO Überprüfen der Verzeichnisse... IF NOT EXIST %quelle% GOTO ERRSOURCE IF NOT EXIST %ziel% GOTO ERRDEST ECHO. ECHO SYNCHRONISIERUNG STARTEN... ECHO. ROBOCOPY %quelle% %ziel% /COPY:DAT /MIR /R:3 /W:20 IF %ERRORLEVEL% GEQ 8 GOTO ERRCOPY GOTO END REM FEHLERBEHANDLUNG :ERRCOPY ECHO. ECHO FEHLER: Mindestens eine Datei konnte nicht kopiert/gel”scht werden! ECHO %timestamp% FEHLER: Mindestens eine Datei konnte nicht kopiert/geloescht werden! >> "%~n0.log" GOTO ERREND :ERRSOURCE ECHO. ECHO FEHLER: Quellverzeichnis nicht vorhanden! ECHO %timestamp% FEHLER: Quellverzeichnis nicht vorhanden! %quelle">> "%~n0.log" GOTO ERREND :ERRDEST ECHO. ECHO FEHLER: Zielverzeichnis nicht vorhanden! ECHO %timestamp% FEHLER: Zielverzeichnis nicht vorhanden! %ziel% >> "%~n0.log" GOTO ERREND REM VORGANG ABGEBROCHEN :ERREND COLOR 4F ECHO. ECHO VORGANG MIT MINDESTENS EINEM FEHLER ABGESCHLOSSEN ECHO. ECHO Dieses Fenster schliesst sich in 5 Sekunden. ECHO. ping -n 5 localhost >nul EXIT REM VORGANG ERFOLGREICH :END COLOR 2F ECHO. ECHO VORGANG ERFOLGREICH ABGESCHLOSSEN ECHO. ECHO Dieses Fenster schliesst sich in 5 Sekunden. ECHO. ping -n 5 localhost >nul EXIT
afterjob.bat: Skript zum Starten des DATEV-Dienstes
net start MSSQL$DATEV_DBENGINE exit
master.bat: Skript zum Ausführen aller Skripte
start /wait #Dateipfad#prejob.bat start /wait #Dateipfad#DatevSicherung.bat start /wait #Dateipfad#afterjob.bat
Das Master Skript muss als Administrator ausgeführt werden. Ganz einfach lässt sich das umsetzen, indem eine Verknüpfung für die master.bat erstellt und in deren Eigenschaften „Als Administrator ausführen“ gesetzt wird (siehe Screenshot). Dann wird die Batch-Datei ohne weitere Maßnahme beim Aufruf über die Verknüpfung mit erhöhten Rechten ausgeführt.
Lokale Datensicherung von DATEV als Alternative zur Cloud-Sicherung
Die Ausführung der Skripte führt zu einer Sicherung der relevanten DATEV-Datenbanken. Das Ergebnis sehen Sie im nebenangestellten Screenshot. Bei einer erfolgreichen Sicherung der DATEV-Datenbanken wird das Konsolenfenster durch das Skript grün eingefärbt.
Als Sicherungsziel empfehlen wir auf jeden Fall ein RAID-System. Ansonsten droht beim Ausfall der Sicherungsfestplatte der Verlust des Backups. Das RAID sollte wiederum regelmäßig überwacht werden, so dass die Redundanz der Sicherung nicht durch einen unbemerkten Ausfall einer Festplatte im Verbund verloren geht. Fellow, der Small Businss Server aus dem Hause datamate, bietet eine solche RAID-Absicherung von Hause aus.
Tritt im Rahmen des Backups ein Fehler auf, dann wird die resultierende Fehlermeldung in einem roten Konsolenfenster angezeigt. Mögliche Fehlerursachen können fehlende Berechtigungen, Probleme beim Stoppen des Dienstes oder Zugriffsprobleme auf das Sicherungslaufwerk sein. Dann kommt man nicht um ein wenig Debugging herum.
Die Automatisierung der Sicherung lässt sich umsetzen, indem man das Master Skript als Aufgabe in der Windows Aufgabenplanung anlegt. Dann bietet das hier vorgestellt Skript einen guten Schutz gegen den Verlust der wertvollen Buchhaltungsdaten dar.
Gerne unterstützen wir Sie auch bei der Einrichtung Ihrer lokalen DATEV-Sicherung oder der Umsetzung individueller Sicherungsstrategien. Sie erreichen uns telefonisch unter der +49 (0)6131 327070 oder per E-Mail unter info@ionas.com.
12. Juli 2017 um 10:34 Uhr
Wunderbar! Dieses Script funktioniert super! Dankeschön an den Autor.