Spécificité de l’installation de PostgreSQL 10
La version 10 de PostgreSQL a constitué une évolution majeur de ce serveur de bases de données objets, relationnelles et noSQL. Elle a marqué également une rupture avec la politique historique de la progression des numéros de version, spécialement en relation avec la compatibilité avec les données antérieures. Avant la version 10 (jusqu’à la version 9.6 donc), PostgreSQL n’assurait pas la compatibilité des données quand le numéro de version mineur s’incrémente. A titre d’exemple, la version 9.6 ne peut pas et ne doit pas gérer des données créées avec la version 9.5. Ceci explique l’insertion automatique du numéro de version dans sa forme majeur.mineur dans tous les chemins qui concernent l’installation du serveur. Cette insertion permettrait de minimiser le risque de confusion entre les versions binaires vs données. Cela explique également la présence de ce format de numéro de version dans les paquets d’installation des distributions Debian et Ubuntu. Pour visualiser la version disponible pour votre système, exécuter :sudo apt-get update apt-cache search postgresql | egrep "^postgresql-[0-9]+(.[0-9])? "En réponse à cette commande voici le résultat obtenu pour la dernière version stable de Debian (Le 10/03/2018 – Debian 9.3, Stretch):
postgresql-9.6 - object-relational SQL database, version 9.6 serverCette contrainte nécessitait, si on voudrait passer à une nouvelle version, de migrer les données en passant par un format texte du dump (dump sous forme d’ordres SQL). Or, cette opération est très lente et devient vite contraignante à partir de quelques dizaines de Go de données. Dans ce cas également, un arrêt du service de l’application qui utilise le serveur, et qui peut être excessivement long, doit être envisagé. A partir de la version 10, PostgreSQL assurera la compatibilité des données entre les versions mineurs. En d’autres termes, aucune migration de données n’est nécessaire entre les versions 10.1 et 10.2 par exemple. Ceci permettra une plus grande flexibilité pour la mise à jour du serveur. Si on sait que le passage entre la première version 9.0 stable et la 10 stable s’est fait en 7 ans, contre 10 mois entre la 9.5 et la 9.6, il est évident que le gain en terme de stabilité du format des données est substantiel. Pour cette raison, le numéro de version inclut par défaut dans les chemins d’installation du serveur ne comporte plus que le premier chiffre. C’est également le cas pour le numéro qui accompagne les paquets d’installation des distributions Debian et Ubuntu.
Versions disponibles pour le système installé
Même avec la dernière version stable du système (Debian 9.3, Stretch ou Ubuntu 16.04 LTS, Xenial au 10/03/2018), on ne dispose pas encore de la version 10 de PostgreSQL. Ceci a été vérifié avec la commande de visualisation des version disponibles exécutée précédemment. En tout cas vous n’aurez toujours pas la totalité des versions stables publiées de ce serveur. En réalité ceci est vrai quand on ne référence que le dépôt officiel du système. Pour pouvoir accéder à l’ensemble des versions stables publiées, il faut ajouter le dépôt PostgreSQL à la liste des sources de paquets de la machine. Pour cela il faut créer un fichier de configuration de ce dépôt suivant la version installée de l’OS:sudo vi /etc/apt/sources.list.d/postgresql-sources.listLe contenu de ce fichier doit être pour un système Debian 9 – Stretch:
deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg mainEt pour un système Ubuntu 18.04 LTS – Bionic:
deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg mainBien entendu il faudra adapter le nom de code de la version du système selon le cas dans ce fichier de configuration. Après avoir enregistré, exécuter dans l’ordre:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt-get update apt-cache search postgresql | egrep "^postgresql-[0-9]+(.[0-9])? "La première commande configure la clé de vérification de l’authenticité des paquets. La troisième liste les versions disponibles. En réponse à cette dernière commande, voici le résultat obtenu toujours pour la dernière version stable de Debian:
postgresql-9.6 - object-relational SQL database, version 9.6 server postgresql-10 - object-relational SQL database, version 10 server postgresql-9.2 - object-relational SQL database, version 9.2 server postgresql-9.3 - object-relational SQL database, version 9.3 server postgresql-9.4 - object-relational SQL database, version 9.4 server postgresql-9.5 - object-relational SQL database, version 9.5 server6 versions stables sont disponibles dont la dernière version 10. Remarquer le nouveau format du nom de paquet de la version 10.
Installation
Pour installer la dernière version stable 10, exécuter:sudo apt-get install postgresql-10Cette commande installe le serveur PostgreSQL ainsi que les utilitaires d’administration. La commande crée également un cluster de bases de données par défaut (ou instance de serveur) qui s’appelle ‘main’. Les principaux chemins relatifs à cette installation sont:
- /var/lib/postgresql/10/main/: les fichiers des données.
- /var/log/postgresql/postgresql-10-main.log: le fichier de log du cluster.
- /etc/postgresql/10/main/: les fichiers de configuration.
- /usr/lib/postgresql/10/: fichiers binaires du serveur, exécutables et librairies.
localeC’est la variable LANG qui est la plus importante.
Désinstallation
Pour désinstaller la version 10 du serveur PostgreSQL de votre machine, exécuter:sudo pg_ctlcluster 10 main stop sudo apt-get remove postgresql-10 postgresql-client-10 postgresql-client-common postgresql-common sudo apt-get purge postgresql-10 postgresql-client-10 postgresql-client-common postgresql-commonLa troisième commande nettoie les données créées par l’installation.]]>