postgresql – de 9.4 à 9.6 suite à un upgrade de debian jessie vers stretch
Suite à la mise à jour de WAPT 1.3 vers 1.6 sous Debian jessie et ensuite à un full-upgrade vers Debian stretch, vous allez vous retrouver en présence de deux instances PostgreSQL (ou 2 clusters). Voici la procédure pour migrer de PostgreSQL 9.4 vers 9.6.
Pré-requis avant migration
- Fermer l’ensemble des applications utilisant le service PostgreSQL : WAPT, …
- Stopper le service PostgreSQL :
# systemctl stop waptserver
# systemctl stop postgresql
Mise à jour du moteur PostgreSQL 9.4 vers 9.6
Lister les cluster disponible sur la machine :
# pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
9.4 main 5432 down postgres /var/lib/postgresql/9.4/main /var/log/postgresql/postgresql-9.4-main.log
9.6 main 5433 down postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log
Dans un premier temps, nous supprimons le cluster préalablement créé lors de la mise à jour vers debian stretch
# pg_dropcluster 9.6 main --stop
Redirecting stop request to systemctl
Ensuite nous procédons à la mise à jour du cluster 9.4 en 9.6 :
# pg_upgradecluster 9.4 main
Stopping old cluster...
[...]
Success. Please check that the upgraded cluster works. If it does,
you can remove the old cluster with
Nettoyage du moteur PostgreSQL 9.4
Précédemment nous avons migré les bases du moteur 9.4 vers 9.6. Avec la commande suivant nous confirmons l’arrêt du moteur 9.4 et nous pouvons procéder à sa suppression.
# pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
9.4 main 5433 down postgres /var/lib/postgresql/9.4/main /var/log/postgresql/postgresql-9.4-main.log
9.6 main 5432 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log
Suppression du cluster 9.4 :
# pg_dropcluster 9.4 main
Vérification de la suppression :
# 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
Après vérification il est possible de supprimer totalement l’ancienne version de PostgreSQL 9.4 :
# apt-get remove --purge libssl1.0.0 libxapian22 postgresql-9.4 postgresql-client-9.4 postgresql-contrib-9.4
Désactiver IPV6 pour PostgreSQL
Depuis le répertoire /etc/postgresql/9.6/main/ :
# cd /etc/postgresql/9.6/main/
Ajouter la ligne suivant au fichier postgresql.conf
# vi /etc/postgresql/9.6/main/postgresql.conf
listen_addresses = '127.0.0.1'
Commenter la ligne 94 du fichier pg_hba.conf
# vi /etc/postgresql/9.6/main/pg_hba.conf
# IPv6 local connections:
#host all all ::1/128 md5
Relancer PostgreSQL et vérifier la bonne prise en compte des modifications:
# netstat -ntl | grep 5432
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN