Un guide étape par étape
-
Faire une sauvegarde . Assurez-vous que votre base de données n'est pas mise à jour.
pg_dumpall > outputfile
-
Installer Postgres 10 . Suivez les instructions sur cette page :https://www.postgresql.org/download/linux/ubuntu/
Ensuite, exécutez
sudo apt-get install postgresql-10
. Une version plus récente sera installée côte à côte avec la version précédente. -
Exécutez
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
Il existe déjà un cluster
main
pour 10 (puisqu'il est créé par défaut lors de l'installation du package). Ceci est fait pour qu'une nouvelle installation fonctionne immédiatement sans qu'il soit nécessaire de créer un cluster au préalable, mais bien sûr, cela se heurte lorsque vous essayez de mettre à niveau9.6/main
quand10/main
existe aussi. La procédure recommandée est de supprimer le cluster 10 avecpg_dropcluster
puis mettre à jour avecpg_upgradecluster
. -
Arrêtez le cluster 10 et supprimez-le :
sudo pg_dropcluster 10 main --stop
-
Arrêtez tous les processus et services écrivant dans la base de données. Arrêtez la base de données :
sudo systemctl stop postgresql
-
Mettez à niveau le cluster 9.6 :
sudo pg_upgradecluster -m upgrade 9.6 main
-
Redémarrez PostgreSQL
sudo systemctl start postgresql
-
Exécutez
pg_lsclusters
. Votre cluster 9.6 devrait maintenant être "down", et le cluster 10 devrait être en ligne à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
-
Tout d'abord, vérifiez que tout fonctionne correctement. Après cela, supprimez le cluster 9.6 :
sudo pg_dropcluster 9.6 main --stop
Quelques notes sur pg_upgradecluster
Ce guide fonctionne bien pour la mise à niveau de 9.5 à 10.1. Lors de la mise à niveau à partir d'une ancienne version, pensez à omettre -m upgrade
à l'étape 6 :
sudo pg_upgradecluster 9.6 main
Si vous avez un très gros cluster, vous pouvez utiliser pg_upgradecluster
avec un --link
option, de sorte que la mise à niveau sera en place. Cependant, cela est dangereux :vous pouvez perdre le cluster en cas de panne. N'utilisez simplement pas cette option si elle n'est pas nécessaire, car -m upgrade
est déjà assez rapide.
Basé sur :
- Docs :Mise à niveau d'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
- Que se passe-t-il si j'interromps ou annule
pg_upgradecluster
? ? - Page de manuel Ubuntu pour pg_upgradecluster
Mettre à jour
Ce guide fonctionne bien pour la mise à niveau de 9.6 à 11 et de 10 à 11, ainsi que de 10 à 13.