Eine Schritt-für-Schritt-Anleitung
-
Erstellen Sie eine Sicherung . Stellen Sie sicher, dass Ihre Datenbank nicht aktualisiert wird.
pg_dumpall > outputfile
-
Installieren Sie Postgres 10 . Folgen Sie den Anweisungen auf dieser Seite:https://www.postgresql.org/download/linux/ubuntu/
Führen Sie dann
sudo apt-get install postgresql-10
aus . Eine neuere Version wird parallel zur früheren Version installiert. -
Führen Sie
pg_lsclusters
aus :Ver Cluster Port Status Owner Data directory Log file 9.6 main 5432 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log 10 main 5433 online postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log
Es gibt bereits einen Cluster
main
für 10 (da dies standardmäßig bei der Paketinstallation erstellt wird). Dies geschieht, damit eine Neuinstallation sofort funktioniert, ohne dass zuerst ein Cluster erstellt werden muss, aber natürlich kollidiert es, wenn Sie versuchen,9.6/main
zu aktualisieren wenn10/main
existiert auch. Das empfohlene Verfahren besteht darin, den 10-Cluster mitpg_dropcluster
zu entfernen und aktualisieren Sie dann mitpg_upgradecluster
. -
Stoppen Sie den 10er-Cluster und löschen Sie ihn:
sudo pg_dropcluster 10 main --stop
-
Stoppen Sie alle Prozesse und Dienste, die in die Datenbank schreiben. Stoppen Sie die Datenbank:
sudo systemctl stop postgresql
-
Aktualisieren Sie den 9.6-Cluster:
sudo pg_upgradecluster -m upgrade 9.6 main
-
Starten Sie PostgreSQL erneut
sudo systemctl start postgresql
-
Führen Sie
pg_lsclusters
aus . Ihr 9.6-Cluster sollte jetzt "down" sein und der 10-Cluster sollte unter5432
online sein :Ver Cluster Port Status Owner Data directory Log file 9.6 main 5433 down postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log 10 main 5432 online postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log
-
Überprüfen Sie zuerst, ob alles einwandfrei funktioniert. Entfernen Sie danach den 9.6-Cluster:
sudo pg_dropcluster 9.6 main --stop
Einige Anmerkungen zu pg_upgradecluster
Diese Anleitung funktioniert gut für das Upgrade von 9.5 auf 10.1. Wenn Sie von einer älteren Version aktualisieren, ziehen Sie in Betracht, -m upgrade
wegzulassen bei Schritt #6:
sudo pg_upgradecluster 9.6 main
Wenn Sie einen wirklich großen Cluster haben, können Sie pg_upgradecluster
verwenden mit einem --link
Option, damit das Upgrade vorhanden ist. Dies ist jedoch gefährlich – Sie können den Cluster bei einem Fehler verlieren. Verwenden Sie diese Option nur nicht, wenn es nicht erforderlich ist, da -m upgrade
ist schon schnell genug.
Basierend auf:
- Docs:Aktualisieren eines PostgreSQL-Clusters
- Hauptsache 1:delameko/upgrade-postgres-9.5-to-9.6.md
- Zeiger 2:johanndt/upgrade-postgres-9.3-to-9.5.md
- Was passiert, wenn ich
pg_upgradecluster
unterbreche oder abbreche ? - Ubuntu-Manpage für pg_upgradecluster
Aktualisieren
Diese Anleitung funktioniert gut für Upgrades von 9.6 auf 11 und von 10 auf 11 sowie von 10 auf 13.