Una guida passo passo
-
Esegui un backup . Assicurati che il tuo database non venga aggiornato.
pg_dumpall > outputfile
-
Installa Postgres 10 . Segui le istruzioni in questa pagina:https://www.postgresql.org/download/linux/ubuntu/
Quindi esegui
sudo apt-get install postgresql-10
. Una versione più recente verrà installata fianco a fianco con la versione precedente. -
Esegui
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
Esiste già un cluster
main
per 10 (poiché viene creato per impostazione predefinita durante l'installazione del pacchetto). Questo viene fatto in modo che una nuova installazione funzioni immediatamente senza la necessità di creare prima un cluster, ma ovviamente si verifica un conflitto quando si tenta di aggiornare9.6/main
quando10/main
esiste anche. La procedura consigliata è rimuovere il cluster 10 conpg_dropcluster
e poi aggiorna conpg_upgradecluster
. -
Arresta il cluster 10 e rilascialo:
sudo pg_dropcluster 10 main --stop
-
Arresta tutti i processi e servizi che scrivono nel database. Arresta il database:
sudo systemctl stop postgresql
-
Aggiorna il cluster 9.6:
sudo pg_upgradecluster -m upgrade 9.6 main
-
Avvia nuovamente PostgreSQL
sudo systemctl start postgresql
-
Esegui
pg_lsclusters
. Il tuo cluster 9.6 dovrebbe ora essere "inattivo" e il cluster 10 dovrebbe essere online su5432
: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
-
In primo luogo, controlla che tutto funzioni correttamente. Successivamente, rimuovi il cluster 9.6:
sudo pg_dropcluster 9.6 main --stop
Alcune note su pg_upgradecluster
Questa guida funziona bene per l'aggiornamento da 9.5 a 10.1. Quando esegui l'aggiornamento da una versione precedente, considera di omettere -m upgrade
nel passaggio n. 6:
sudo pg_upgradecluster 9.6 main
Se hai un cluster davvero grande, puoi usare pg_upgradecluster
con un --link
opzione, in modo che l'aggiornamento sia in atto. Tuttavia, questo è pericoloso:puoi perdere il cluster in caso di errore. Non usare questa opzione se non necessario, come -m upgrade
è già abbastanza veloce.
Basato su:
- Documenti:aggiornamento di un cluster PostgreSQL
- Gist #1:delameko/upgrade-postgres-9.5-to-9.6.md
- Gist #2:johanndt/upgrade-postgres-9.3-to-9.5.md
- Cosa succede se interrompo o annullo
pg_upgradecluster
? - Manpage Ubuntu per pg_upgradecluster
Aggiorna
Questa guida funziona bene per l'aggiornamento da 9.6 a 11 e da 10 a 11, nonché da 10 a 13.