Benutzer-Werkzeuge


Sidebar

ASV-Webseite

Dokumentation

Hilfe



Druck/Export

Drucken/PDF erzeugen

H2-to-Postgres-Konvertierung

Historische Hintergründe

In einer Zeit, als die Hardware-Voraussetzungen an den Schulen noch anders ausgesehen haben, als es heute der Fall ist, hatte man sich entschieden, zwei Installationsvarianten für ASV die Datenbank betreffend anzubieten:

  • ASV Server School (mit einer H2-Embedded-Datenbank; hier werden alle Daten in einer einzigen großen Datei vorgehalten);
  • ASV Server Enterprise (mit einer „ausgewachsenen“ Postgres-Datenbank, die deutlich robuster gegenüber Unregelmäßigkeiten im Betrieb ist).

Aus heutiger Sicht kann im Prinzip jede Schule (bzw. ASV-Installation) einen ASV Server Enterprise betreiben, weil

  • zum einen die Hardware vor Ort an den Schulen erheblich leistungsfähiger geworden ist;
  • zum anderen die Installation und der Betrieb des Postgres-Datenbanksystems eine weniger große Herausforderung mehr darstellt.

Vor diesem Hintergrund kann man dazu raten, vom ASV Server School auf die Enterprise-Variante umzustellen. Nach der Umstellung ergeben sich ausschließlich Vorteile in Bezug auf einen stabileren und erheblich performanteren Betrieb.

Empfehlung

Bestehen Ihrerseits Zweifel bzw. Unklarheiten betreffend das erforderliche und hier beschriebene Vorgehen, zögern Sie bitte nicht, die für Ihre Schule(n) zuständige Multiplikatorin bzw. den zuständigen Multiplikator zu Rate zu ziehen, der den Systembetreuer der Schule oder Dienstleister für die IT unterstützen kann.

Beschreibung

Im StMUK wurde im April 2022 ein Standalone-Java-Tool geschaffen, mit dem eine bestehende H2-Datenbank (ASV Server School) vollständig in eine (anfänglich leere) Postgres-Datenbank übertragen werden kann. Dabei werden die Datensätze 1:1 geklont.

Die graphische Oberfläche stellt sich wie folgt dar:

Was dieses Tool nicht kann (bzw. nicht können kann)

Wenn es darum geht, dass die sich bisher in einer H2-Datenbank befindlichen Schulen A und B in eine bereits produktive Postgres-Instanz „einziehen“ sollen (d. h. dort arbeiten bereits die Schulen C, D und E), so ist dies mit dem hier beschriebenen Verfahren nicht möglich.

In diesen Fällen muss (auch weiterhin) der Weg über die schulscharfe Sicherung (und deren Einspielen in den schon produktiv genutzten Ziel-DSS) beschritten werden.

Voraussetzungen

Auf der Quellseite (H2, ASV Server School) muss im Vorfeld der DSS(-Dienst) angehalten werden, da sonst kein Zugriff auf die H2-Datenbank möglich ist. Dort muss auch das Tool ausgeführt werden.

Auf der Zielseite (Postgres, ASV Server Enterprise) muss zunächst Postgres aufgesetzt und anschließend ein „frischer“ DSS (ASV Server) mit dem Voll-Installer installiert werden. Der Postgres-Dienst muss laufen, der DSS sollte angehalten sein.

Der Postgres-Dienst auf der Zielseite muss netzwerktechnisch von der „abgebenden“ Quellseite aus erreichbar sein, damit die Daten „durchgepumpt“ werden können. Sofern Ziel- und Quellseite auf der gleichen Maschine liegen, ist das bereits mit den Standardeinstellungen kein Problem.

Sollten Sie die neue Installation auf der gleichen Maschine vornehmen, wählen Sie bei der Installation des Postgres/Enterprise-DSS bitte einen von der H2/School-Quellseite abweichenden Installationsort, z. B. C:\ASV_PG\Server.

Falls Postgres/die Zielseite dagegen auf einer anderen Maschine als die Quellseite läuft, müssen die folgenden zwei Ergänzungen/Veränderungen an Postgres-Konfigurationsdateien (im data-Verzeichnis von Postgres, in der Regel unter C:\Program Files\PostgreSQL\<Version>\data zu finden) vorgenommen werden, damit das auf Quellseite laufende Tool berechtigt ist, auf die Postgres-Datenbank zuzugreifen und sie zu befüllen.

Ergänzen Sie in der Datei pg_hba.conf am Ende die folgende Zeile:

Nehmen Sie in der Datei postgresql.conf folgende Anpassung vor:

Starten Sie nun den PostgreSQL-Dienst neu, damit die Änderungen aktiv werden. Erst dann darf die Quell-Maschine (vorübergehend) auf die „entfernte“ Postgres-Datenbank zugreifen. Nach erfolgter Migration werden wir diese temporär erforderliche Ausweitung der Zugriffsberechtigung wieder rückgängig machen (s. u.).

Vorgehensweise

Das Tool muss auf derjenigen Maschine ausgeführt werden, wo der abzulösende ASV Server School läuft (bzw. lief, denn er muss ja abgeschaltet sein, s. o.). Der Grund ist, dass die Zugangsdaten zur H2-Datenbank aus der config.ini des Quell-DSS gelesen werden müssen.

Als Erstes ist der Pfad zur DSS-Installation des Quellsystems anzugeben. Falls der Quell-DSS in C:\ASV\Server installiert ist, erkennt das Tool dies automatisch. In allen anderen Fällen klicken Sie bitte auf Durchsuchen… und navigieren in den Basisordner des Quell-DSS.

Anschließend wird die Angabe der korrekten Zugangsdaten für die Zieldatenbank (Postgres) erforderlich (mittlerer Bereich im obigen Screenshot).

Nach Klick auf die Schaltfläche Konvertiervorgang starten (dieser Knopf wird erst aktiv, wenn alle notwendigen Daten eingetragen sind) beginnt der Prozess mit seiner Arbeit.

Falls er auf der Zielseite ein bereits vorhandenes Schema asv vorfindet, erfolgt eine Sicherheitsnachfrage.

Wenn Sie den Ziel-DSS gerade frisch installiert haben, wird angegeben, dass das Schema 0 (null) Schulen enthält. In diesem Fall können Sie der Löschfrage bedenkenlos zustimmen.

In allen anderen Fällen (d. h. wenn eine oder mehrere Schulnummern aufgeführt werden) ist Misstrauen geboten, da die Gefahr besteht, durch Verwechslung o. ä. eine andere, noch benötigte Postgres-Instanz zu überschreiben.

In der dbctl-Konsole werden Sie über den Fortgang informiert:

In Abhängigkeit von der Anzahl, Größe und Komplexität der in der H2-Instanz enthaltenen Schulen wird der gesamte Prozess einige Minuten in Anspruch nehmen. Bitte warten Sie, bis Ihnen durch ein Dialogfeld die Beendigung des Prozesses signalisiert wird (das kann auch dann noch ein wenig dauern, wenn gerade keine Ausgaben mehr in der dbctl-Konsole erfolgen):

Prüfen Sie anschließend die Ausgaben in der dbctl-Konsole.

Wurden in der dbctl-Konsole Fehler ausgegeben, so konnte der Klon-Vorgang nicht oder nicht vollumfänglich durchgeführt werden. Bitte prüfen Sie als Erstes die Korrektheit der eingegebenen Datenbank-Zugangsdaten. Sollte an der Stelle jedoch keine Fehleingabe vorliegen (was sehr unwahrscheinlich ist), erstellen Sie bitte ein Support-Ticket.
Tipp: Die Meldungen in der Konsole können markiert und in die Zwischenablage übernommen werden.

Abschließend beenden Sie das Werkzeug durch Klick auf Tool beenden.

Abschluss / erneute Absicherung des Postgres-DB-Servers

Machen Sie die beiden oben unter „Voraussetzungen“ beschriebenen Änderungen an der Postgres-Konfiguration wieder rückgängig:

  • Entfernen Sie die besagte Zeile („samenet“) aus der Datei pg_hba.conf wieder und speichern Sie die Datei ab;
  • Tragen Sie in der Datei postgresql.conf bei listen_addresses = … statt des Sternchens * wieder localhost ein und speichern Sie die Datei ab.

Starten Sie nun bitte den PostgreSQL-Dienst erneut, damit die Änderungen wirksam werden.

Bitte achten Sie unbedingt darauf, dass das Quellsystem (H2/Server School) nie mehr wieder in Betrieb geht/gehen kann.

Anderenfalls bestünde die Gefahr, dass das schulische Personal auf zwei verschiedenen ASV-Installationen arbeitet!

Falls der neue Postgres-DSS auf einer anderen Maschine als der alte H2-DSS läuft, müssen Sie beim ASV-Client (bzw. den ASV-Clients) in der Datei config.ini die Zeile server.url=… auf die neue IP-Adresse anpassen.

Nun können Sie den Postgres-DSS starten und die Schulen werden in der Lage sein, mit dem 1:1 übertragenen Datenbestand sofort weiterzuarbeiten.

Automatische Datensicherung

Als (ehemaliger) Betreiber einer ASV-School-Instanz waren Sie auch bisher schon für die regelmäßige Datensicherung auf ein externes (Offline-)Medium verantwortlich, um im Ernstfall (Havarie, Befall durch Schadsoftware, …) gewappnet zu sein.

Wie Sie zukünftig Ihrer Pflicht zur Sicherung der Daten Ihrer frischgebackenen PostgreSQL-Installation nachkommen, erfahren Sie hier.

Download

Sie können das Tool hier herunterladen.

Falls Sie Fragen haben...

Sollten Sie hinsichtlich der Durchführung bzw. des konkreten Ablaufs Fragen haben bzw. Unterstützung benötigen, wenden Sie sich bitte an Ihre zuständige Multiplikatorin bzw. Ihren zuständigen Multiplikator.

Bei technischen Fragen zum Tool als solchem (nicht aber zur Durchführung der Umstellung!) können Sie sich an leonhard.fellermayr@stmuk.bayern.de wenden.