Automatisches Backup der Sage 100 Anwendungsdatenbanken
Die Sage 100 bietet im Standard keine Möglichkeit, die Anwendungsdatenbank zu sichern. Mit den Bordmitteln des Microsoft SQL Server lässt sich ein Backup ab der Standard-Edition zwar automatisieren, in der Express-Edition fehlt diese Funktion jedoch.
Mit der Kombination aus einem kleinen SQL-Skript und der Windows-Aufgabenplanung lässt sich auch unter SQL Server Express ein verlässliches, automatisiertes Backup einrichten.
SQL-Skript zur Datensicherung
Das folgende Skript sichert alle Datenbanken, die nicht explizit über die NOT IN-Liste ausgeschlossen werden. Neben der Anwendungsdatenbank wird so 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 für den Dateinamen
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 DBs
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
Zur Ausführung verwenden wir das Konsolenwerkzeug sqlcmd.exe:
sqlcmd.exe -S SAGE100 -E -i C:\Scripts\backup.sql
-Sgibt den Server an, also den Rechnernamen, auf dem der Datenbankserver läuft. Wird eine benannte Instanz verwendet, ist diese mit anzugeben (z. B.SAGE100\SQLEXPRESS).-Everwendet die integrierte Windows-Authentifizierung. Dazu rate ich dringend, da das Kommando gleich in der Aufgabenplanung verwendet wird – Klartext-Passwörter dort abzulegen wäre fahrlässig.-iübergibt den Pfad zum SQL-Skript.
Einrichtung der Windows-Aufgabenplanung
Starten Sie die Aufgabenplanung über Win + R und geben Sie taskschd.msc ein.

In der Aufgabenplanung wählen Sie per Rechtsklick auf Aufgabenplanungsbibliothek den Menüpunkt Aufgabe erstellen….

Reiter „Allgemein"
- Vergeben Sie einen sprechenden Namen und eine Beschreibung.
- Über Benutzer oder Gruppe ändern… legen Sie fest, unter welchem Konto die Aufgabe läuft. Das Konto braucht ausreichende Rechte auf dem SQL Server.
- Wichtig: Wählen Sie Unabhängig von der Benutzeranmeldung ausführen, damit die Aufgabe auch unbeaufsichtigt im Hintergrund läuft.

Reiter „Trigger"
Legen Sie über Neu… den Zeitplan fest – z. B. werktäglich um 22:00 Uhr.

Reiter „Aktionen"
- Klicken Sie auf Neu… und wählen Sie Programm starten.
- Im Feld Programm/Skript:
sqlcmd.exe - Im Feld Argumente hinzufügen:
-S SAGE100 -E -i C:\Scripts\backup.sql

Bestätigen Sie mit OK. Zum Abschluss bitte die Aufgabe einmal manuell starten und das Verlaufsprotokoll prüfen.
Was außerdem zu bedenken ist
- Aufbewahrung: Das Skript überschreibt das Backup desselben Tages. Wer mehrere Tage vorhalten will, sollte den Dateinamen um die Uhrzeit erweitern oder einen separaten Aufräum-Job ergänzen.
- Speicherort: Ein lokaler Pfad ist nur die halbe Miete. Die Backups gehören anschließend auf ein anderes Medium oder einen anderen Server.
- Verifikation: Ein Backup, dessen Wiederherstellung nie geprüft wurde, ist kein Backup. Im halbjährlichen Turnus testweise zurückspielen.
Bei Fragen zur Einrichtung oder einer Erweiterung um Off-Site-Replikation gerne direkt melden.