1.104. PostgreSQL Update auf einen neueren Zweig
Dieser Artikel erklärt den PostgreSQL Updatevorgang auf einen neueren Zweig.
1.104.1. FreeBSD
Dieses HowTo setzt einen bereits installierten und laufenden PostgreSQL Server voraus. Im Updateverlauf muss der Server vorübergehend abgeschaltet werden, eine Downtime ist deshalb leider nicht zu vermeiden.
In den folgenden Beispielen wird PostgreSQL vom 8.4er Zweig auf den
9.1er Zweig aktualisiert, die Versionsnummern 84
und 91
müssen
natürlich auf den eigenen Fall angepasst werden.
1.104.1.1. Versionen
Bei jedem Wechsel der „higher minor revision“, also der zweiten Versionsnummer muss, ein Backup der Datenbank gemacht werden um die Daten nach dem Update wieder herzustellen.
Backup/Restore erfordert:
8.3.x → 8.4.x
8.4.x → 9.1.x
Backup/Restore nicht erfordert:
8.4.8 → 8.4.9
8.4.0 → 8.4.9
Deshalb gibt es für jeden Zweig unter FreeBSD eigene Ports. Der Vorteil ist, dass dann bei regulären Updates nichts weiter zu beachten ist. Der Nachteil ist, dass Zweigwechsel von einem veralteten Zweig manuell erfolgen müssen.
1.104.1.2. Backup
Am Anfang des Backups sollten ggf. alle Dienste/Anwendungen, die die Datenbank verwenden beendet werden. Diese stören das Backup zwar nicht. Aber Änderungen die nach/während dem Backup gemacht werden sind nach dem Restore natürlich nicht mehr verfügbar.
Das Backup wird mit folgendem Kommando ausgeführt:
# pg_dumpall -Upgsql > /usr/local/pgsql/data.84.dump
Danach sollte der Server gestoppt werden:
# service postgresql stop
Das Standardverzeichnis für die Daten ist /usr/local/pgsql/data
, um
den Restore später durchzuführen muss es neu angelegt werden. Es ist
ratsam das Verzeichnis an diesem Punkt einfach umzubenennen:
# mv /usr/local/pgsql/data /usr/local/pgsql/data.84
1.104.1.3. Update
Jetzt kommt das Update der Server-Software. Beispiele sind für
portmaster und
pkg_upgrade. Die Parameter für
portupgrade sind in diesem Fall identisch
mit denen für portmaster
. Auch pkg_upgrade
funktioniert mit den
gleichen Parametern, das Beispiel nutzt jedoch eine kompaktere
Schreibweise.
Update mit portmaster
:
# portmaster -o databases/postgresql91-client databases/postgresql84-client ...
# portmaster -o databases/postgresql91-server databases/postgresql84-server
Upgrade mit pkg_upgrade
:
# pkg_upgrade -C databases/postgresql91-server
1.104.1.4. Wiederherstellung
Nach erfolgtem Software-Update kann die Datenbank nun wieder hergestellt werden. Als erstes muss die Datenbank dazu neu initialisiert werden:
# service postgresql initdb
Nun kann das Backup wieder importiert werden:
# service postgresql start
# psql -U pgsql -f /usr/local/pgsql/data.84.dump postgres
Ab diesem Punkt ist die Datenbank wieder voll einsatzbereit. Dienste und Anwendungen, die auf die Datenbank zugreifen können jetzt wieder gestartet werden.
1.104.1.5. Aufräumarbeiten
Wenn alles wie erhofft funktioniert können die alten Daten, also
data.84
und data.84.dump
gelöscht werden.
1.104.2. Verweise
databases/postgresql91-server in den FreeBSD Ports
Die service(8) Manpage
Die pg_dumpall(1) Manpage
Die psql(1) Manpage
Zuletzt geändert: 2023-07-22