Benutzer-Werkzeuge


Sidebar

ASV-Webseite

Dokumentation

Hilfe



Druck/Export

Drucken/PDF erzeugen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
alle:technik:backup:sicherung [05.11.2018 21:10] – [Schulscharfe Sicherung] werner.karolusalle:technik:backup:sicherung [13.12.2023 09:37] (aktuell) matthias.gold
Zeile 1: Zeile 1:
 +~~NOTOC~~
 ====== Schulscharfe Sicherung ====== ====== Schulscharfe Sicherung ======
  
-<WRAP center round alert 60%+<WRAP center round alert>  
-**Bitte exportieren Sie Ihre selbsterstellten Berichte vor einer Sicherung unbedingt mittels //Datei -> Verwaltung -> Berichtsbibliothek//, da diese nicht mit gesichert werden!**+**Bitte exportieren Sie Ihre selbsterstellten Berichte vor einer Sicherung unbedingt mittels //Datei Verwaltung Berichtsbibliothek//, da diese nicht mitgesichert werden!**
 </WRAP> </WRAP>
  
-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 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 ggf. wieder einzuspielen
 +Bei der Rücksicherung gehen alle Änderungen, die in der Zwischenzeit gemacht wurden, verloren.
  
 Die ASV-Datensicherung kann auf zwei Arten erfolgen: Die ASV-Datensicherung kann auf zwei Arten erfolgen:
  
-  * [[alle:technik:backup:sicherung#datensicherungsfunktion_aus_der_anwendung_heraus|über die Anwendung selbst]]: diese Art steht der Schule selbst zur Verfügung. Eine [[einfuehrung:verwaltung:sichern|Sicherung]] bzw. [[einfuehrung:verwaltung:ruecksichern|Rücksicherung]] kann nur von Schulen erstellt werden, für die eine Berechtigung besteht. +  * [[alle:technik:backup:sicherung#datensicherungsfunktion_aus_der_anwendung_heraus|über die Anwendung selbst]]: Diese Art steht der Schule selbst zur Verfügung. Eine [[einfuehrung:verwaltung:sichern|Sicherung]] bzw. [[einfuehrung:verwaltung:ruecksichern|Rücksicherung]] kann nur von Benutzern erstellt werden, für die die Berechtigung besteht. 
-  * [[alle:technik:backup:sicherung#kommandozeilenprogramm_in_einer_dss-installation|ü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.+  * [[alle:technik:backup:sicherung#kommandozeilenprogramm_in_einer_dss-installation|ü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.
  
    
Zeile 18: Zeile 20:
   <Pfad zum DSS-Installationsverzeichnis>bin\dbctl [options] [commands] [command options]   <Pfad zum DSS-Installationsverzeichnis>bin\dbctl [options] [commands] [command options]
  
-<WRAP center round important 60%+Bitte beachten Sie, dass bei einer regional-zentralen Installation, die Ihr Sachaufwandsträger eingerichtet hat, kein direkter Zugriff auf die Datenbank bzw. die ASV-Serverinstallation besteht. 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 [[alle:technik:backup:sicherung#datensicherungsfunktion_aus_der_anwendung_heraus|Sicherung über die Programmoberfläche]] besteht aber nach wie vor. 
-Hinweis: \\ Das Sicherungstool ermöglicht zwar die Sicherung einzelner Schulen (Mandanten),  jedoch sollte zusätzlich auch ein Backup der gesamten Datenbank erstellt werden!+ 
 +<WRAP center round important> 
 +Das Sicherungstool ermöglicht zwar die Sicherung einzelner Schulen (Mandanten),  jedoch sollten zusätzlich auch regelmäßig Datensicherungen der gesamten Datenbank erstellt werden. Dies kann z. B. mit Hilfe des [[alle:technik:backup:service|Aktualisierungsdienstes]] erfolgen.
 </WRAP> </WRAP>
- 
-**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 [[alle:technik:backup:sicherung#datensicherungsfunktion_aus_der_anwendung_heraus|Sicherung über die Programmoberfläche]] besteht aber nach wie vor. 
- 
  
 ==== Aufruf des Tools ==== ==== Aufruf des Tools ====
Zeile 33: Zeile 34:
 Die genauen Parameter erhalten Sie durch den Aufruf ''dbctl.cmd -help''. Im Folgenden wird jede der genannten Aktionen an Beispielen genauer erläutert. 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. +Für Nutzer anderer Betriebssystem unterscheidet sich die Verwendung der schulscharfen Sicherung nur im Behfehlsnamen (''dbctl'' statt ''dbctl.cmd''
- +und der Pfadangaben mittels Slash (''/'') statt Back-Slash (''\'').
-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 ==== ==== Erstellung der Konfigurationsdatei ====
Zeile 45: Zeile 44:
 In der Konfigurationsdatei werden alle benötigten Daten zur Verbindung mit der Datenbank hinterlegt.  In der Konfigurationsdatei werden alle benötigten Daten zur Verbindung mit der Datenbank hinterlegt. 
  
-  # host IP oder DNS-Name +<file ini dbsettings.ini> 
-  database.host = localhost +# host IP oder DNS-Name 
-  # PostgreSQL DB Port +database.host=localhost 
-  database.port = 5432 + 
-  # PostgreSQL ASV Datenbank +# PostgreSQL DB Port 
-  database.name = asv +database.port=5432 
-  # DB User und Passwort + 
-  database.user = asv +# PostgreSQL ASV Datenbank 
-  database.password = geheim!+database.name=asv 
 + 
 +# DB User muss immer "asv" sein 
 +database.user=asv 
 +# Passwort des DB User asv  
 +database.password=geheim123 
 +</file>
  
 Für den ASV-Server-School verwenden Sie: Für den ASV-Server-School verwenden Sie:
  
-  database.schema=asv +<file ini dbsettings.ini> 
-  database.user=asv +database.schema=asv 
-  database.password=asv +database.user=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.password=asv 
-  database.driver=org.h2.Driver +database.url=jdbc:h2:../database/asv;MODE=LEGACY;IFEXISTS=FALSE;CASE_INSENSITIVE_IDENTIFIERS=TRUE;COMPRESS=true;FILE_LOCK=NO;WRITE_DELAY=30000;CACHE_SIZE=65536;LOCK_MODE=3;MAX_COMPACT_TIME=60000;SCHEMA_SEARCH_PATH=PUBLIC,${database.schema} 
-  database.shutdown.sql=SHUTDOWN COMPACT+database.driver=org.h2.Driver 
 +</file>
  
 Verschlüsseln Sie die angelegte Datei ''dbsettings.ini'' mit folgendem Befehl: Verschlüsseln Sie die angelegte Datei ''dbsettings.ini'' mit folgendem Befehl:
Zeile 69: Zeile 75:
  
 === Anlegen der Konfigurationsdatei ctlconfig.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. +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.  
 +<file ini ctlconfig.ini> 
 +-d dbsettings.ini 
 +-u sys 
 +-p geheimesPasswort 
 +backup 
 +</file>
  
-Der Aufruf erfolgt dann nur noch mit ''dbctl.cmd @'' bzw. ''dbctl.cmd @<Pfad zur Datei>''+Auch diese Datei kann verschlüsselt werden.
  
-=== Passwort des Systemadministrators === +  dbctl.cmd -d ctlconfig.ini  encrypt -f ctlconfig.ini
-Für die unten beschriebenen Aktionen wird die Benutzerkennung eines Systemadministrators (beispielsweise des Benutzers sys) benötigtDerzeit muss das Passwort aus Sicherheitsgründen in verschlüsselter Form aus der Datenbank bezogen werden+
  
-Bitte gehen Sie beispielsweise folgendermaßen vor: +Der Aufruf erfolgt dann nur noch mit ''dbctl.cmd @'' bzw''dbctl.cmd @<Pfad zur Datei>''
- +
-  * Öffnen Sie das Datenbanktool pgAdmin und rufen Sie die SQL-Ansicht auf \\ {{alle:technik:backup:passwortsys.jpg|}} \\ \\ +
-  * Geben Sie folgenden SQL-Befehl in das Fenster ein: \\ {{alle:technik:backup:passwortsys2.jpg|}} \\ \\ +
-  * 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 ==== ==== Sicherung einzelner Schulen ====
 +
 Eine Sicherung einer einzelnen Schule mit Schulnummer **n** wird mit folgendem Befehl erstellt: Eine Sicherung einer einzelnen Schule mit Schulnummer **n** wird mit folgendem Befehl erstellt:
  
-<code>dbctl.cmd -d dbsettings.ini -u sys -p verschlPasswort backup -i n</code>+ 
 +<WRAP center round info> 
 +Sie erhalten als Datei eine .sba Datei im Unterordner ''svp_data'', welche Sie auch nur mit dem Kommandozeilentool ''dbctl'' wieder zurücksichern können 
 +</WRAP> 
 + 
 +  dbctl.cmd -d dbsettings.ini -u sys -p geheimesPasswort backup -i n
  
 Nach Ausführung dieses Befehls erhält man etwa folgende Ausgabe: Nach Ausführung dieses Befehls erhält man etwa folgende Ausgabe:
Zeile 98: Zeile 106:
 Sollen alle Schulen in einer Installation schulscharf gesichert werden, verwendet man folgenden Befehl: Sollen alle Schulen in einer Installation schulscharf gesichert werden, verwendet man folgenden Befehl:
  
-<code>dbctl.cmd -d dbsettings.ini -u sys -p verschlPasswort backup </code>+  dbctl.cmd -d dbsettings.ini -u sys -p geheimesPasswort backup
  
 Sollen mehrere Schulen** in getrennten Dateien** gesichert werden, wird die Liste der Schulnummern nach dem Parameter i angehängt. Sollen mehrere Schulen** in getrennten Dateien** gesichert werden, wird die Liste der Schulnummern nach dem Parameter i angehängt.
Zeile 104: Zeile 112:
 **Beispiel**: Die Schulen mit der Schulnummer 9001 bis 9010 sollen schulscharf gesichert werden. Die Schule 9008 soll dabei unberücksichtigt bleiben. **Beispiel**: Die Schulen mit der Schulnummer 9001 bis 9010 sollen schulscharf gesichert werden. Die Schule 9008 soll dabei unberücksichtigt bleiben.
  
-<code>dbctl.cmd -d dbsettings.ini -u sys -p verschlPasswort backup -i 9001 9002 9003 9004 9005 9006 9007 9008 9009 9010</code> +  dbctl.cmd -d dbsettings.ini -u sys -p geheimesPasswort backup -i 9001 9002 9003 9004 9005 9006 9007 9009 9010
  
 bzw. kürzer bzw. kürzer
  
-<code>dbctl.cmd -d dbsettings.ini -u sys -p verschlPasswort -b saveDir backup -i 90.. -e 9008</code>+  dbctl.cmd -d dbsettings.ini -u sys -p geheimesPasswort -b saveDir backup -i 90.. -e 9008
  
 Erklärung der Parameter:  Erklärung der Parameter: 
  
-  * -i Liste der Schulen, die in einzelnen Dokumenten gesichert werden sollen, der Punkt dient dabei als Wildcard+  * -i Liste der Schulen, die in einzelnen Dateien gesichert werden sollen, der Punkt dient dabei als Wildcard
   * -e Liste der Schulen, die nicht mitgesichert werden sollen   * -e Liste der Schulen, die nicht mitgesichert werden sollen
   * -b Basisverzeichnis für die Sicherungen   * -b Basisverzeichnis für die Sicherungen
   * -u Kennung eines Systemadministrators   * -u Kennung eines Systemadministrators
-  * -p verschlüsseltes Passwort für den bei -u genannten Systemadministrator+  * -p Passwort für den bei -u genannten Systemadministrator
  
 Dieses Sicherungsskript kann automatisiert regelmäßig gestartet werden.  Dieses Sicherungsskript kann automatisiert regelmäßig gestartet werden. 
Zeile 122: Zeile 130:
  
 ==== Löschen einzelner Schulen aus einer gemeinsamen Datenbasis ==== ==== 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!+ 
 +[[alle:technik:dss:stoppen|Stoppen]] Sie den laufenden Prozess des DSS! 
 +Fertigen Sie eine Sicherung der kompletten Datenbank an. 
  
 Geben Sie zum Löschen einer einzelnen Schule zum Beispiel folgenden Befehl ein:  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+  dbctl.cmd -d dbsettings.ini -u sys -p geheimesPasswort delete -i 9310
  
 Falls der Befehl erfolgreich ausgeführt wird, erhalten Sie etwa folgende Bildschirmanzeige: Falls der Befehl erfolgreich ausgeführt wird, erhalten Sie etwa folgende Bildschirmanzeige:
Zeile 133: Zeile 143:
 Durch diesen Aufruf wird die Schule mit der Schulnummer 9310 gelöscht. Durch diesen Aufruf wird die Schule mit der Schulnummer 9310 gelöscht.
  
-<WRAP center round important 60%>+<WRAP center round important>
 Das Löschen einer Schule kann mehrere Minuten dauern. Falls sich die Anzeige in der Eingabeaufforderung nicht ändert, ist das kein Fehler.  Das Löschen einer Schule kann mehrere Minuten dauern. Falls sich die Anzeige in der Eingabeaufforderung nicht ändert, ist das kein Fehler. 
 </WRAP> </WRAP>
Zeile 141: Zeile 151:
 ==== Löschen einer einzelnen Zeitscheibe einer Schule==== ==== Löschen einer einzelnen Zeitscheibe einer Schule====
  
-<WRAP center round important 60%>+<WRAP center round important>
 **Fertigen Sie zunächst eine Sicherung der kompletten Datenbank an.** **Fertigen Sie zunächst eine Sicherung der kompletten Datenbank an.**
 </WRAP> </WRAP>
  
-Geben Sie zum Löschen einer **Zeitscheibe** einer einzelnen Schule zum Beispiel folgenden Befehl ein: \\ <code>dbctl.cmd -d dbsettings.ini -u sys -p verschlPasswort delete -i 9310 -s Zeitscheiben-Kürzel</code> Falls der Befehl erfolgreich ausgeführt wird, erhalten Sie etwa folgende Bildschirmanzeige: \\ \\ {{alle:technik:backup:dbctrl_schuleloeschen01.jpg?nolink|}} \\ \\ Durch diesen Aufruf wird die Zeitscheibe mit dem Kürzel <code>Zeitscheiben-Kürzel</code> der Schule mit der Schulnummer 9310 gelöscht.+Geben Sie zum Löschen einer **Zeitscheibe** einer einzelnen Schule zum Beispiel folgenden Befehl ein:  
 +  dbctl.cmd -d dbsettings.ini -u sys -p geheimesPasswort delete -i 9310 -s Zeitscheiben-Kürzel 
 +Falls der Befehl erfolgreich ausgeführt wird, erhalten Sie etwa folgende Bildschirmanzeige:  
 + 
 +{{alle:technik:backup:dbctrl_schuleloeschen01.jpg?nolink|}} 
 + 
 +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. Dieses Vorgehen ermöglicht es beispielsweise, ein neu angelegtes Schuljahr nochmals zu löschen und den Prozess zu wiederholen.
  
-<WRAP center round important 60%>+<WRAP center round important>
 ACHTUNG! Führen Sie den folgenden Befehl **unter keinen Umständen** für das aktuelle Schuljahr oder das Vorjahr aus! ACHTUNG! Führen Sie den folgenden Befehl **unter keinen Umständen** für das aktuelle Schuljahr oder das Vorjahr aus!
 </WRAP> </WRAP>
  
-Beispiel: Löschen des Schuljahres 2019/20 (= Planungsschuljahr während des Schuljahrs 2018/19) der Schule mit Schulnummer 9310:+Beispiel: Löschen des Schuljahres 2021/22 (= Planungsschuljahr während des Schuljahrs 2020/21) der Schule mit Schulnummer 9310:
  
-<code>dbctl.cmd -d dbsettings.ini -u sys -p verschlPasswort delete -i 9310 -s 2019</code> +  dbctl.cmd -d dbsettings.ini -u sys -p geheimesPasswort delete -i 9310 -s 2021 
  
 Beispiel: Löschen des Schuljahres STATISTIK der Schule mit Schulnummer 9310: Beispiel: Löschen des Schuljahres STATISTIK der Schule mit Schulnummer 9310:
  
-<WRAP center round important 60%>+<WRAP center round important>
 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! 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!
 </WRAP> </WRAP>
  
   - Umbenennung per SQL-Statement: <code>update asv.svp_wl_schuljahr set schluessel='HANSI' where schluessel='STATISTIK';</code>   - Umbenennung per SQL-Statement: <code>update asv.svp_wl_schuljahr set schluessel='HANSI' where schluessel='STATISTIK';</code>
-  - <code>dbctl.cmd -d dbsettings.ini -u sys -p verschlPasswort delete -i 9310 -s HANSI</code> +  - <code>dbctl.cmd -d dbsettings.ini -u sys -p geheimesPasswort delete -i 9310 -s HANSI</code> 
   - Rück-Umbenennung per SQL-Statement: <code>update asv.svp_wl_schuljahr set schluessel='STATISTIK' where schluessel='HANSI';</code>   - Rück-Umbenennung per SQL-Statement: <code>update asv.svp_wl_schuljahr set schluessel='STATISTIK' where schluessel='HANSI';</code>
 +
 +Anmerkung: Die Umbenennung ist notwendig, da das Löschen von Schuljahren mit dem Schlüssel "STATISTIK" programmatisch nicht zugelassen wird.
  
 ==== Rücksichern der schulscharfen Sicherung in eine bestehende Datenbank ==== ==== Rücksichern der schulscharfen Sicherung in eine bestehende Datenbank ====
-Ist eine Schule bereits in einem Datenbestand enthalten, kann eine schulscharfe Sicherung mit dem Befehl <code>dbctl.cmd -d dbsettings.ini -u sys -p verschlPasswort restore -af <Pfad\Name der Sicherungsdatei></code> eingespielt werden. Nach dem Löschenprozess ersetzt das eingespielte Backup den Datenbestand. 
  
-<WRAP center round info 60%>+Ist eine Schule bereits in einem Datenbestand enthalten, kann eine schulscharfe Sicherung mit dem Befehl  
 +  dbctl.cmd -d dbsettings.ini -u sys -p geheimesPasswort restore -af <Pfad\Name der Sicherungsdatei> 
 +eingespielt werden. Nach dem Löschprozess ersetzt das eingespielte Backup den Datenbestand. 
 + 
 +<WRAP center round info>
 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. 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.
 </WRAP> </WRAP>