Ma base de données dépasse 600 Go et mon volume actuel ne représente que 1 To, ce qui limite probablement mes options.
Mes fichiers de configuration sont ici:
/etc/postgresql/9.6/main
Ma base de données est ici:
/mnt/1TB/postgresql/9.6/main
Edit - Ce guide a fonctionné pour moi. Le seul ajout que je devais faire était de télécharger libicu55 manuellement et de l'installer, et je devais accorder l'autorisation 1777 à postgres pour mon dossier/tmp /. J'étais également en train d'enregistrer le dossier de données sur un autre lecteur. J'ai donc dû utiliser la commande suivante:
pg_upgradecluster -m upgrade 10 main /mnt/1TB/postgresql/10
https://Gist.github.com/delameko/bd3aa2a54a15c50c723f0eef8f583a44
Faites une sauvegarde . Assurez-vous que votre base de données n'est pas mise à jour.
pg_dumpall > outputfile
Installez Postgres 10 . Suivez les instructions sur cette page: https://www.postgresql.org/download/linux/ubuntu/
Puis lancez 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 (car il est créé par défaut lors de l'installation du package). Ceci est fait de sorte qu'une nouvelle installation fonctionne immédiatement sans qu'il soit nécessaire de créer un cluster en premier, mais elle se heurte bien sûr lorsque vous essayez de mettre à niveau 9.6/main
lorsque 10/main
existe également. La procédure recommandée consiste à supprimer le cluster 10 avec pg_dropcluster
puis à mettre à niveau avec pg_upgradecluster
.
Arrêtez le cluster 10 et déposez-le:
Sudo pg_dropcluster 10 main --stop
Arrêtez tous les processus et services en é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
Relancez PostgreSQL
Sudo systemctl start postgresql
Exécutez pg_lsclusters
. Votre cluster 9.6 devrait maintenant être "hors service" et le cluster 10 devrait être en ligne à l'adresse 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. Ensuite, supprimez le cluster 9.6:
Sudo pg_dropcluster 9.6 main --stop
pg_upgradecluster
Ce guide fonctionne bien pour la mise à niveau de 9.5 à 10.1. Lors de la mise à niveau depuis une version plus ancienne, envisagez d’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 une option --link
afin que la mise à niveau soit en place. Toutefois, cela est dangereux: vous pouvez perdre le cluster en cas d’échec. N'utilisez pas cette option si ce n'est pas nécessaire, car -m upgrade
est déjà assez rapide.
Basé sur:
pg_upgradecluster
?Ce guide fonctionne très bien pour la mise à niveau de 9,6 à 11 et de 10 à 11.
Presque travaillé hors de la boîte. Je suis sur 17.10 astucieux. Tant que vous pouvez mettez cela dans le fichier .deb, cela ne marchera pas - Postgres ne met à jour que les versions non LTS si elles cassent la version LTS. Alors mettez Zesty dans ce débat et vous êtes prêt à partir.