Ajout procédure pour mise à jour de cluster pgsql

This commit is contained in:
Romain Dessort 2017-09-12 15:02:18 -04:00
parent 687aede73f
commit a1dacb87b9

View file

@ -362,6 +362,49 @@ postgres=# select * from pg_pltemplate;
(6 rows)
~~~
## Mettre à jour un cluster
La mise à jour de PostgreSQL d'une version majeure à une autre implique une mise à jour du datadir.
Dans Debian, chaque version de PostgreSQL a son propre paquet (*postgresql-9.3*, *postgresql-9.4*, etc…). La mise à jour doit donc forcement se faire de manière explicite par un `apt install` du paquet en question. Il n'est pas obligatoire de faire chaque mise à jour intermédiaire pour arriver à celle voulue (i.e. on peut passer de la 9.1 à la 9.6 sans devoir passer par la 9.2, 9.3, etc…).
### Procédure à suivre pour passer à une version plus récente
Dans la procédure suivante, on suppose que l'on met à jour un cluster en version 9.3 vers la version 9.6. Le cluster s'appelle *main* (nom par défaut).
* Installer les paquets :
~~~
# apt install postgresql-9.6 postgresql-contrib-9.6 postgresql-client-9.6
~~~
* supprimer le cluster créé par défaut à l'installation :
~~~
# pg_dropcluster 9.6 main --stop
~~~
* lancer la mise à jour du cluster. En gros `pg_upgrade` va interdire toute connexion (autre que postgres) sur le cluster à mettre à jour, faire un rsync du datadir (option `-m upgrade`) avec des hardlinks (pour sauver de la place et du temps) (option `-k`), intervertir le port de connexion des 2 clusters et réautoriser les connexions au cluster :
~~~
# pg_upgradecluster 9.3 main -m upgrade -k
~~~
* si tout c'est bien passé, on peut voir le nouveau cluster et s'y connecter :
~~~
# pg_lsclusters
# sudo -u postgres psql
psql (9.6.5)
~~~
* on peut alors supprimer l'ancien cluster ainsi que les paquets :
~~~
# pg_dropcluster 9.3 main
# apt remove postgresql-9.3 postgresql-client-9.3 postgresql-contrib-9.3
~~~
## Utilisation
### Connexion