Amtliche Schulverwaltung
Sie befinden sich hier: start » alle » technik » backup » sicherung

Dies ist eine alte Version des Dokuments!


Schulscharfe Sicherung

Bitte exportieren Sie Ihre selbsterstellten Berichte vor einer Sicherung unbedingt mittels Datei → Verwaltung → Berichtsblibliothek, da diese nicht mit gesichert werden!

Die schulscharfe Sicherung dient dazu, den Datenbestand einer Schule aus einer Datenbank, in der die Daten mehrerer Schulen gespeichert sind, gezielt ohne Auswirkungen auf die anderen zu sichern und wieder einzuspielen.

Die ASV-Datensicherung kann auf zwei Arten erfolgen:

  • über die Anwendung selbst: diese Art steht der Schule selbst zur Verfügung. Eine Sicherung bzw. Rücksicherung kann nur von Schulen erstellt werden, für die eine Berechtigung besteht.
  • über das Kommandozeilentool dbctl.cmd: dieses Skript unterstützt die technischen Administratoren beispielsweise bei regional zentral betriebenen Installationen mit mehreren Schulen, um eine Datensicherung einzelner Schulen zu ermöglichen. Das gezielte Backup lässt sich unter Windows über die Aufgabenplanung gezielt automatisieren.

Kommandozeilenprogramm in einer DSS-Installation

Im Ordner bin einer DSS-Installation steht das Kommandozeilentool dbctl.cmd zur Verfügung. Genereller Aufruf des Programmes:

<Pfad zum DSS-Installationsverzeichnis>bin\dbctl [options] [commands] [command options]

Hinweis:
Das Sicherungstool ermöglicht zwar die Sicherung einzelner Schulen (Mandanten), jedoch sollte zusätzlich auch ein Backup der gesamten Datenbank erstellt werden!

Hinweis:
Bei einer (regional) zentralen Installation, die Ihr Sachaufwandsträger eingerichtet hat, besteht kein direkter Zugriff auf die Datenbank bzw. die ASV-Serverinstallation. Eine Sicherung über den hier beschriebenen Weg ist deshalb von der Schule nicht möglich. In diesem Fall wird die Sicherung durch den Sachaufwandsträger in Absprache mit der Schule geregelt. Die Möglichkeit der Sicherung über die Programmoberfläche besteht aber nach wie vor.

Aufruf des Tools

Das Datenbanktool dbctl besitzt folgende Struktur bei seinem Aufruf

dbctl.cmd allgemeine Parameter Aktion Detail der Aktion
-u, … backup, restore, delete, encrypt, verify -i, …

Die genauen Parameter erhalten Sie durch den Aufruf dbctl.cmd -help. Im Folgenden wird jede der genannten Aktionen an Beispielen genauer erläutert.

Für Nutzer anderer Betriebssystem unterscheidet sich die Verwendung der schulscharfen Sicherung. Eine genaue Beschreibung folgt noch.

Wenn in Ihrer Installation die servereigene JRE verwendet wird, dann könnte es erforderlich sein, das Skript anzupassen. Es reicht meist, wenn in der letzten Zeile des Skriptes dbctl.cmd der Text %SVP_HOME%/jre/bin/java durch das Wort java ersetzt wird.

Erstellung der Konfigurationsdatei

Führen Sie folgende Schritte durch:

Anlegen der Konfigurationsdatei ''dbsettings.ini''

In der Konfigurationsdatei werden alle benötigten Daten zur Verbindung mit der Datenbank hinterlegt.

# host IP oder DNS-Name
database.host = localhost
# PostgreSQL DB Port
database.port = 5432
# PostgreSQL ASV Datenbank
database.name = asv
# DB User und Passwort
database.user = asv
database.password = geheim!

Für den ASV-Server-School verwenden Sie:

database.schema=asv
database.user=asv
database.password=asv
database.url=jdbc:h2:file:<Pfad_zur_ASV_Server_Installation>/database/asv;IFEXISTS=TRUE;MV_STORE=true;MVCC=TRUE;FILE_LOCK=NO;WRITE_DELAY=60000;CACHE_SIZE=16384;LOCK_MODE=3;MULTI_THREADED=1;SCHEMA_SEARCH_PATH=ASV,PUBLIC
database.driver=org.h2.Driver
database.shutdown.sql=SHUTDOWN COMPACT

Verschlüsseln Sie die angelegte Datei dbsettings.ini mit folgendem Befehl:

dbctl.cmd -d dbsettings.ini  encrypt -f dbsettings.ini

Anlegen der Konfigurationsdatei ctlconfig.ini

In der Datei ctlconfig.ini können die Parameter für den Aufruf des Programmes gespeichert werden, so dass sie nicht jedesmal über die Kommandozeile eingegeben werden müssen. Diese Datei muss zusätzlich zur Konfigurationsdatei dbsettings.ini im Ordner .dbctl abgelegt werden.

Der Aufruf erfolgt dann nur noch mit dbctl.cmd @ bzw. dbctl.cmd @<Pfad zur Datei>

Passwort des Systemadministrators

Für die unten beschriebenen Aktionen wird die Benutzerkennung eines Systemadministrators (beispielsweise des Benutzers sys) benötigt. Derzeit muss das Passwort aus Sicherheitsgründen in verschlüsselter Form aus der Datenbank bezogen werden.

Bitte gehen Sie beispielsweise folgendermaßen vor:

  • Öffnen Sie das Datenbanktool pgAdmin und rufen Sie die SQL-Ansicht auf


  • Geben Sie folgenden SQL-Befehl in das Fenster ein:


  • Im Ergebnis sehen Sie in der Spalte passwort das verschlüsselte Passwort. Dieses muss für die unten beschriebenen Schritte verwendet werden.
  • Falls Sie eine andere Kennung als sys verwenden (beispielsweise einen extra für diese Zwecke angelegten Systemadministrator), muss der SQL-Befehl entsprechend abgeändert werden.
  • Das Standardpasswort des sys !!ASV!! funktioniert nicht, es muss entsprechend der Passwortkonventionen geändert sein.
  • Das verschlüsselte Passwort des sys erhält man aus einer H2 Datenbank mit Hilfe eines Datenbanktools z.B. DBeaver o.ä. und einem SQL-Befehl analog zu der obigen Lösung.

Sicherung einzelner Schulen

Eine Sicherung einer einzelnen Schule mit Schulnummer n wird mit folgendem Befehl erstellt:

dbctl.cmd -d dbsettings.ini -u sys -p verschlPasswort backup -i n

Nach Ausführung dieses Befehls erhält man etwa folgende Ausgabe:

Sollen alle Schulen in einer Installation schulscharf gesichert werden, verwendet man folgenden Befehl:

dbctl.cmd -d dbsettings.ini -u sys -p verschlPasswort backup 

Sollen mehrere Schulen in getrennten Dateien gesichert werden, wird die Liste der Schulnummern nach dem Parameter i angehängt.

Beispiel: Die Schulen mit der Schulnummer 9001 bis 9010 sollen schulscharf gesichert werden. Die Schule 9008 soll dabei unberücksichtigt bleiben.

dbctl.cmd -d dbsettings.ini -u sys -p verschlPasswort backup -i 9001 9002 9003 9004 9005 9006 9007 9008 9009 9010

bzw. kürzer

dbctl.cmd -d dbsettings.ini -u sys -p verschlPasswort -b saveDir backup -i 90.. -e 9008

Erklärung der Parameter:

  • -i Liste der Schulen, die in einzelnen Dokumenten gesichert werden sollen, der Punkt dient dabei als Wildcard
  • -e Liste der Schulen, die nicht mitgesichert werden sollen
  • -b Basisverzeichnis für die Sicherungen
  • -u Kennung eines Systemadministrators
  • -p verschlüsseltes Passwort für den bei -u genannten Systemadministrator

Dieses Sicherungsskript kann automatisiert regelmäßig gestartet werden. Die Einrichtung einer regelmäßigen Aufgabe unter Windows ist hier beschrieben.

Löschen einzelner Schulen aus einer gemeinsamen Datenbasis

Fertigen Sie zunächst eine Sicherung der kompletten Datenbank an. Stoppen Sie anschließend alle laufenden Prozess des DSS!

Geben Sie zum Löschen einer einzelnen Schule zum Beispiel folgenden Befehl ein:

dbctl.cmd -d dbsettings.ini -u sys -p verschlPasswort delete -i 9310

Falls der Befehl erfolgreich ausgeführt wird, erhalten Sie etwa folgende Bildschirmanzeige:

Durch diesen Aufruf wird die Schule mit der Schulnummer 9310 gelöscht.

Das Löschen einer Schule kann mehrere Minuten dauern. Falls sich die Anzeige in der Eingabeaufforderung nicht ändert, ist das kein Fehler.

Am Ende des Prozesses sind alle Einträge zu einer Schule gelöscht worden.

Löschen einer einzelnen Zeitscheibe einer Schule

Fertigen Sie zunächst eine Sicherung der kompletten Datenbank an.

Geben Sie zum Löschen einer Zeitscheibe einer einzelnen Schule zum Beispiel folgenden Befehl ein:

dbctl.cmd -d dbsettings.ini -u sys -p verschlPasswort delete -i 9310 -s Zeitscheiben-Kürzel

Falls der Befehl erfolgreich ausgeführt wird, erhalten Sie etwa folgende Bildschirmanzeige:



Durch diesen Aufruf wird die Zeitscheibe mit dem Kürzel

Zeitscheiben-Kürzel

der Schule mit der Schulnummer 9310 gelöscht.

Dieses Vorgehen ermöglicht es beispielsweise, ein neu angelegtes Schuljahr nochmals zu löschen und den Prozess zu wiederholen.

ACHTUNG! Führen Sie den folgenden Befehl unter keinen Umständen für das aktuelle Schuljahr oder das Vorjahr aus!

Beispiel: Löschen des Schuljahres 2019/20 (= Planungsschuljahr während des Schuljahrs 2018/19) der Schule mit Schulnummer 9310:

dbctl.cmd -d dbsettings.ini -u sys -p verschlPasswort delete -i 9310 -s 2019

Beispiel: Löschen des Schuljahres STATISTIK der Schule mit Schulnummer 9310:

Vor dem Löschen der Statistik-Zeitscheibe muss diese zwingend zuvor umbenannt werden! Nehmen Sie bezüglich der Notwendigkeit von deren Löschung zunächst Kontakt zum ASV-Kernteam auf!

  1. Umbenennung per SQL-Statement:
    update asv.svp_wl_schuljahr set schluessel='HANSI' where schluessel='STATISTIK';
  2. dbctl.cmd -d dbsettings.ini -u sys -p verschlPasswort delete -i 9310 -s HANSI
  3. Rück-Umbenennung per SQL-Statement:
    update asv.svp_wl_schuljahr set schluessel='STATISTIK' where schluessel='HANSI';

Rücksichern der schulscharfen Sicherung in eine bestehende Datenbank

Ist eine Schule bereits in einem Datenbestand enthalten, kann eine schulscharfe Sicherung mit dem Befehl

dbctl.cmd -d dbsettings.ini -u sys -p verschlPasswort restore -af <Pfad\Name der Sicherungsdatei>

eingespielt werden. Nach dem Löschenprozess ersetzt das eingespielte Backup den Datenbestand.

Nach Abschluss einer Rücksicherung empfiehlt sich die unverzügliche Überprüfung der Aktualität von Programmversion, Wertelisten und Plausibiltäten über Datei - Verwaltung - ASD-Schnittstelle/ Schaltfläche Aktualität prüfen.

Prüfen der Datenbankstruktur

Es können verschiedene Fehlerkonstellationen einen Analyse der Datenbankstruktur erforderlich machen.

Dazu dient der Befehl dbctl.cmd verify.

Die genauere Verwendung ist auf der Seite Prüfung der Datenbankstruktur beschrieben.