En steg-för-steg-guide
-
Gör en säkerhetskopia . Se till att din databas inte uppdateras.
pg_dumpall > outputfile
-
Installera Postgres 10 . Följ instruktionerna på den här sidan:https://www.postgresql.org/download/linux/ubuntu/
Kör sedan
sudo apt-get install postgresql-10
. En nyare version kommer att installeras sida vid sida med den tidigare versionen. -
Kör
pg_lsclusters
: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
Det finns redan ett kluster
main
för 10 (eftersom detta skapas som standard vid paketinstallation). Detta görs så att en ny installation fungerar direkt utan att behöva skapa ett kluster först, men det krockar så klart när du försöker uppgradera9.6/main
när10/main
finns också. Den rekommenderade proceduren är att ta bort klustret 10 medpg_dropcluster
och uppgradera sedan medpg_upgradecluster
. -
Stoppa 10-klustret och släpp det:
sudo pg_dropcluster 10 main --stop
-
Stoppa alla processer och tjänster som skriver till databasen. Stoppa databasen:
sudo systemctl stop postgresql
-
Uppgradera 9.6-klustret:
sudo pg_upgradecluster -m upgrade 9.6 main
-
Starta PostgreSQL igen
sudo systemctl start postgresql
-
Kör
pg_lsclusters
. Ditt 9.6-kluster ska nu vara "ner" och 10-klustret ska vara online på5432
: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
-
Kontrollera först att allt fungerar som det ska. Ta sedan bort 9.6-klustret:
sudo pg_dropcluster 9.6 main --stop
Några anteckningar om pg_upgradecluster
Den här guiden fungerar bra för att uppgradera från 9.5 till 10.1. När du uppgraderar från en äldre version, överväg att utelämna -m upgrade
på steg #6:
sudo pg_upgradecluster 9.6 main
Om du har ett riktigt stort kluster kan du använda pg_upgradecluster
med en --link
alternativet, så att uppgraderingen kommer att vara på plats. Det här är dock farligt – du kan tappa klustret om det uppstår ett misslyckande. Använd bara inte det här alternativet om det inte är nödvändigt, som -m upgrade
är redan tillräckligt snabb.
Baserat på:
- Dokument:Uppgradering av ett PostgreSQL-kluster
- Grund 1:delameko/upgrade-postgres-9.5-to-9.6.md
- Grund 2:johanndt/upgrade-postgres-9.3-to-9.5.md
- Vad händer om jag avbryter eller avbryter
pg_upgradecluster
? - Ubuntu-manpage för pg_upgradecluster
Uppdatera
Den här guiden fungerar bra för att uppgradera från 9.6 till 11 och från 10 till 11, samt från 10 till 13.