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-10aus . Eine neuere Version wird parallel zur früheren Version installiert. -
Führen Sie
pg_lsclustersaus :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.logEs gibt bereits einen Cluster
mainfü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/mainzu aktualisieren wenn10/mainexistiert auch. Das empfohlene Verfahren besteht darin, den 10-Cluster mitpg_dropclusterzu 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_lsclustersaus . Ihr 9.6-Cluster sollte jetzt "down" sein und der 10-Cluster sollte unter5432online 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_upgradeclusterunterbreche 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.