05.09.2017, 18:40
Hallo zusammen,
wie versprochen hier die Informationen zum Update des Postgresql Servers.
Disclaimer (wie es im englischen so schön heißt):
Die unten stehende Prozedur hat bei mir problemlos funktioniert und entspricht der empfohlenen Vorgehensweise beim Upgrade des Postgresql-Servers. Ich gebe aber keine Garantien dafür, dass das bei allen so funktioniert (schon gleich gar nicht unter Linux) und übernehme keine Verantwortung für entstandene Schäden oder Datenverluste.
Wem das Ganze zu riskant ist sollte sich an ein Systemhaus wenden.
Wir müssen zwei Szenarien unterscheiden:
1. Einspielen des Patches
Wenn ihr nur eure aktuelle Postgresql-Installation aktualisieren wollt (also z. B. von 9.2.11 auf 9.2.22, von 9.6.1 auf 9.6.4, ...) ist der Aufwand überschaubar. Alle Installationen mit gleicher Haupt- und Nebenversionsnummer (also z. B. 9.2.1, 9.2.2, ...) verwenden das gleiche Programmverzeichnis und können auch das gleiche Datenverzeichnis verwenden. Hier muss man tatsächlich nur folgende Schritte durchgehen:
- Datensicherung von ASV und Notenmanager vornehmen, sicher ist sicher.
- ASV-Dienst stoppen
- Sicherstellen, dass Notenmanager nicht genutzt wird
- Postgresql Server Dienst auf dem Server stoppen
- Installation laufen lassen
- Postgresql Server Dienst auf dem Server wieder starten
- ASV-Dienst starten
Bei mir hat das (Windows Server) wunderbar funktioniert. Das Installationsprogramm erkennt die vorhandene Version, das Datenverzeichnis und den Port und führt das Upgrade durch. Änderungen an den Konfigurationsdateien mussten nicht vorgenommen werden.
2. Upgrade auf eine aktuelle Hauptversion
Wenn ihr von einer älteren Version (9.2, 9.3, 9.4, 9.5) gleich auf die aktuelles Version 9.6.5 upgraden wollt wird es aufwändiger. Diese können bzw. sollten nicht einfach in das gleiche Verzeichnis wie die bestehende Installation gespielt werden und auch nicht das gleiche Datenverzeichnis verwenden.
Folgender Weg hat bei mir funktioniert (ACHTUNG: die folgende Beschreibung gilt für Windows Server, mit Linux kenne ich mich zu wenig aus. Sollte aber im Prinzip ähnlich gehen):
Wenn alles läuft: alten Dienst dauerhaft deaktivieren und irgendwann dann mal die alte Installation komplett löschen.
Wenn es Probleme gibt: einfach die Ports der beiden Installationen wieder zurückändern (die letzten 5 Punkte oben) und die Dienste neu starten. Wenn ihr dann einen neuen Versuche vornehmt müsst ihr aber die Datensicherung der alten Installation wieder neu erstellen und wieder in die neue Installation importieren, da ja sicher inzwischen Daten importiert wurden.
Gruß
Stephan
PS: zum jetzigen Zeitpunkt sollte jeder zumindest den Patch einspielen. Nutzer der Postgresql Version 9.2.X müssen aber generell sich um ein Update auf 9.6 kümmern, da der Support für 9.2 in diesem September eingestellt wird:
"The PostgreSQL community will stop releasing updates for the 9.2.X release series in September 2017. Users are encouraged to update to a newer release branch soon." (https://www.postgresql.org/docs/9.2/stat...-2-23.html)
wie versprochen hier die Informationen zum Update des Postgresql Servers.
Disclaimer (wie es im englischen so schön heißt):
Die unten stehende Prozedur hat bei mir problemlos funktioniert und entspricht der empfohlenen Vorgehensweise beim Upgrade des Postgresql-Servers. Ich gebe aber keine Garantien dafür, dass das bei allen so funktioniert (schon gleich gar nicht unter Linux) und übernehme keine Verantwortung für entstandene Schäden oder Datenverluste.
Wem das Ganze zu riskant ist sollte sich an ein Systemhaus wenden.
Wir müssen zwei Szenarien unterscheiden:
1. Einspielen des Patches
Wenn ihr nur eure aktuelle Postgresql-Installation aktualisieren wollt (also z. B. von 9.2.11 auf 9.2.22, von 9.6.1 auf 9.6.4, ...) ist der Aufwand überschaubar. Alle Installationen mit gleicher Haupt- und Nebenversionsnummer (also z. B. 9.2.1, 9.2.2, ...) verwenden das gleiche Programmverzeichnis und können auch das gleiche Datenverzeichnis verwenden. Hier muss man tatsächlich nur folgende Schritte durchgehen:
- Datensicherung von ASV und Notenmanager vornehmen, sicher ist sicher.
- ASV-Dienst stoppen
- Sicherstellen, dass Notenmanager nicht genutzt wird
- Postgresql Server Dienst auf dem Server stoppen
- Installation laufen lassen
- Postgresql Server Dienst auf dem Server wieder starten
- ASV-Dienst starten
Bei mir hat das (Windows Server) wunderbar funktioniert. Das Installationsprogramm erkennt die vorhandene Version, das Datenverzeichnis und den Port und führt das Upgrade durch. Änderungen an den Konfigurationsdateien mussten nicht vorgenommen werden.
2. Upgrade auf eine aktuelle Hauptversion
Wenn ihr von einer älteren Version (9.2, 9.3, 9.4, 9.5) gleich auf die aktuelles Version 9.6.5 upgraden wollt wird es aufwändiger. Diese können bzw. sollten nicht einfach in das gleiche Verzeichnis wie die bestehende Installation gespielt werden und auch nicht das gleiche Datenverzeichnis verwenden.
Folgender Weg hat bei mir funktioniert (ACHTUNG: die folgende Beschreibung gilt für Windows Server, mit Linux kenne ich mich zu wenig aus. Sollte aber im Prinzip ähnlich gehen):
- Neuinstallation von 9.6.5 auf dem gleichen Server. Dabei en anderes Programmverzeichnis wählen (geschieht automatisch) und ein anderes Datenverzeichnis angeben. Als Portnummer habe ich 5433 vergeben (schlägt der Windows-Installer sowieso automatisch vor). Wichtig: als Passwort für den Nutzer "postgres" solltet ihr das gleiche verwenden wie bei der alten Installation. Das verhindert Verwirrungen zwischendurch.
- Kopieren der pg_hba.conf aus dem Datenverzeichnis der alten Installation in das Datenverzeichnis der neuen Installation. WICHTIG: den Dienst für den neuen Postgresql-Server neu starten!
- Sicherheitshalber den ASV-Dienst stoppen.
- Sicherstellen, dass niemand mit dem Notenmanager arbeitet.
- Eine Eingabeaufforderung öffnen und in das Verzeichnis C:\Program Files\postgresql\9.X\bin der alten Installation wechseln.
- Folgenden Befehl eingeben:
pg_dumpall.exe --host localhost --port 5432 --username "postgres" --role "postgres" --no-password --verbose --file "H:\pgdumpall_9_4.sql"Das Verzeichnis und den Dateinamen könnt ihr natürlich beliebig wählen. Da der Befehl direkt auf dem Server ausgeführt wird werdet ihr normalerweise auch nicht nach dem Passwort für den Benutzer "postgres" gefragt.
- Jetzt in das Verzeichnis C:\Program Files\postgresql\9.6\bin wechseln.
- Dort den Befehl
psql --username=postgres --port=5433 --file="H:\pgdumpall_9_4.sql"
eingeben. Dadurch wird Backup auf den neuen Server gespielt.
- Anschließend mit pgAdmin 4 kontrollieren: neuen Server anklicken und verbinden, gegebenenfalls aktualisieren (rechte Maustaste > Refresh). Es müssten jetzt alle Datenbanken und auch die Benutzer nmuser, nmsvXXXX, ... vorhanden sein.
- nmadmin.conf im Programmverzeichnis von NMAdmin öffnen
- In der Zeile "dbserverport =" die 5432 testweise in 5433 ändern (oder halt den Port, den ihr bei der Neuinstallation gewählt habt). Änderungen speichern und NMAdmin starten.
- Wenn das klappt, das gleiche auch mit der nmsv.conf der Schulversion durchführen, sollte genauso funktionieren.
- Anschließend den Port in beiden Dateien wieder auf 5432 stellen.
- Mit dem Windows Explorer das Verzeichnis C:\Program Files\postgresql\9.X\data der alten Installation öffnen.
- postgresql.conf mit einem Editor öffnen und die Zeile "port = 5432" in "port = 5431" umändern.
- Dienst für den alten Postgresql-Server neu starten
- In das Verzeichnis C:\Program Files\postgresql\9.6\data der neuen Installation wechseln
- Port auf 5432 ändern und Dienst für den neuen Postgresql-Server neu starten
Wenn alles läuft: alten Dienst dauerhaft deaktivieren und irgendwann dann mal die alte Installation komplett löschen.
Wenn es Probleme gibt: einfach die Ports der beiden Installationen wieder zurückändern (die letzten 5 Punkte oben) und die Dienste neu starten. Wenn ihr dann einen neuen Versuche vornehmt müsst ihr aber die Datensicherung der alten Installation wieder neu erstellen und wieder in die neue Installation importieren, da ja sicher inzwischen Daten importiert wurden.
Gruß
Stephan
PS: zum jetzigen Zeitpunkt sollte jeder zumindest den Patch einspielen. Nutzer der Postgresql Version 9.2.X müssen aber generell sich um ein Update auf 9.6 kümmern, da der Support für 9.2 in diesem September eingestellt wird:
"The PostgreSQL community will stop releasing updates for the 9.2.X release series in September 2017. Users are encouraged to update to a newer release branch soon." (https://www.postgresql.org/docs/9.2/stat...-2-23.html)
RSS-Feed mit aktuellen Informationen über Updates, Änderungen in der Programmbedienung und anderen wichtigen Mitteilungen unter http://www.notenmanager.net/feeds/Notenmanager.xml