Automatisches Backup der Sage 100 Anwendungsdatenbanken

Die Sage 100 bietet im Standard keine Möglichkeit um die Anwendungsdatenbank zu sichern.
Ein Backup lässt sich mit den Boardmitteln des Microsoft SQL-Servers ab der Standardversion zwar automatisieren, doch fehlt dieses Feature in der Expressversion.

Durch die Kombination aus einem SQL-Script und der Windows Aufgabenplanung lässt sich ein solides, automatisiertes Backup auch beim Einsatz der Expressversion des SQL-Servers erstellen.

SQL-Script zur Datensicherung

Das verwendete Script sichert alle Datenbanken, die nicht explizit über die Liste „NOT IN“ ausgeschlossen wurden. Neben der Anwendungsdatenbank wird somit z.B. auch die globale Datenbank der Sage 100 gesichert.

DECLARE @name VARCHAR(50) -- Name der Datenbank
DECLARE @path VARCHAR(256) -- Dateiablagepfad der Backups  
DECLARE @fileName VARCHAR(256) -- Dateiname des Backups
DECLARE @fileDate VARCHAR(20) -- Datum/Uhrzeit im Dateinamen
 
 -- Pfad des Backupordners setzen
SET @path = 'C:\Backup\'  
 
-- Datum in Datei
SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112) 
 
DECLARE db_cursor CURSOR READ_ONLY FOR  
SELECT [name] 
FROM master.sys.databases 
WHERE [name] 
NOT IN ('master','model','msdb','tempdb')  -- ausgeschlossene Datenbanken
AND [State] = 0 -- Datenbank muss online sein 
AND is_in_standby = 0
 
OPEN db_cursor   
FETCH NEXT FROM db_cursor INTO @name   
 
WHILE @@FETCH_STATUS = 0   
BEGIN   
   SET @fileName = @path + @name + '_' + @fileDate + '.bak'  
   BACKUP DATABASE @name TO DISK = @fileName  
 
   FETCH NEXT FROM db_cursor INTO @name   
END   

 
CLOSE db_cursor   
DEALLOCATE db_cursor

Um das SQL-Script auszuführen, verwenden wir den Konsolenbefehl sqlcmd.exe

sqlcmd.exe -S SAGE100 -E -i C:\Scripts\backup.sql

Über den Parameter „-S“ geben wir den Server an, also den Namen des Rechners, auf dem der Datenbankserver läuft. Im Beispiel heißt dieser „SAGE100“. Wenn eine benannte Instanz verwendet wird, so ist diese hier ebenfalls anzugeben.

Der Parameter „-E“ bedeutet, dass wir eine trusted connection verwenden, also die integrierte Authentifizierung des SQL-Servers verwenden. Zur dieser Vorgehensweise möchte ich dringend raten, da das Kommando nachfolgend in der Windows Aufgabenplanung verwendet wird und es grob fahrlässig ist Passwörter im Klartext abzuspeichern.

Die Angabe des Parameters „-i“ übergibt das SQL-Backupscript zur Ausführung an den SQL-Server.

Einrichtung der Windows Aufgabenplanung

Zunächst starten wir die Windows Aufgabenplanung. Das geht z.B. über die Tastenkombination WIN+R. Im Feld „Öffnen“ geben wir „taskschd.msc“ ein und bestätigen mit Enter oder einem Klick auf „OK“.

In der Aufgabenplanung klicken wir nun mit der rechten Maustaste auf „Aufgabenplanungsbibliothek“ und wählen dann den Menüpunkt „Aufgabe erstellen…“ aus.

Im nächstem Schritt erstellen wir die Aufgabe.

Auszufüllen ist das Feld „Name“ mit einer aussagekräftigen Bezeichnung der Aufgabe. Das Feld „Beschreibung“ dient der genaueren Spezifikation der Aufgabe.

Über die Schaltfläche „Benutzer oder Gruppe ändern…“ legen Sie fest, unter welcher Benutzerkennung die Aufgabe ausgeführt wird. Wenn Sie im beim Aufruf der sqlcmd.exe eine trusted connection verwenden, stellen Sie bitte sicher, dass das ausgewählte Benutzerkonto über ausreichende Berechtigungen auf dem SQL-Server verfügt.

Wichtig: Damit das Backup auch unbeaufsichtigt im Hintergrund auf dem Server läuft, wählen Sie bitte unbedingt die Option „Unabhängig von der Benutzeranmeldung ausführen“.

Unterhalb der Registerkarte „Trigger“ legen wir fest welche Ereignisse die Ausführung der Aufgabe bedingen. Um einen neuen Trigger anzulegen, klicken Sie bitte auf „Neu“. Im nachfolgenden Screenshot definieren einen eine Ausführung nach Zeitplan, der an Werktagen ab dem 22.02.2021 um 22 Uhr gestartet wird. Somit wird ein tägliches Backup der Datenbanken an Werktagen um 22 Uhr erstellt.

Unter der Reiterkarte Aktionen definieren Sie nun die auszuführende Aktion, also die Ausführung des SQL-Scripts. Klicken Sie auf „Neu“ und wählen im nachfolgenden Dialog die Aktion „Programm starten“ aus.

im Feld „Programm/Skript“ geben Sie den Befehl sqlcmd.exe ein. Im Feld „Argumente hinzufügen (optional)“ ergänzen Sie die in unserem Anwendungsfall keineswegs optionalen Argumente wie oben beschrieben.

Bestätigen Sie den Dialog mit „OK“ und schließen Sie die Aufgabe.

Um die Funktionalität der Aufgabe zu überprüfen, führen Sie diese manuell aus und überprüfen ggf. das Fehlerprotokoll.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.