Installation de postgreSQL sur Linux
Il existe de nombreuses distributions Linux. La plupart proposent postgreSQL dans leurs dépôts. Cette documentation n'a pas vocation à documenter toutes les manières d'installer postgreSQL sur toutes les distributions. Chaque utilisateur connaît normalement bien sa distribution et saura trouver les ressources nécessaires sur le web.
Bien que l'emplacement des fichiers de paramétrage puisse être différent selon les distribution, leur utilisation est normalement la même.
Cette documentation documente succinctement le déploiement de postgreSQL sur debian tel qu'il est pratiqué par Cilog mais surtout, la configuration nécessaire pour un bon fonctionnement de Logeproj. Il y est surtout question de ce qu'il faut faire, pas toujours ou à gros traits de comment le faire.
Attention : Cilog décline toute responsabilité en cas de problème rencontré en suivant cette documentation. Vous êtes le root !
Pré-requis
Pour des performances optimales de Logeproj, le serveur de base de données doit être convenablement dimensionné. Bien que postgreSQL soit peu gourmand, ses performances sont très affectées dans le cas ou la mémoire vive est pleine et que le serveur se met à utiliser le swap. Il est donc recommandé de se réserver une marge confortable et de surveiller la mémoire vive du serveur. Nous recommandons, bien que de bonnes performances soient possible avec moins en fonction du nombre d'utilisateurs, de déployer postgreSQL sur une machine virtuelle disposant d'au moins 2Go de mémoire vive.
Installation de postgreSQL sur Debian
Cilog préfère utiliser les dépôt mis à disposition par postgreSQL que les dépôts Debian. Pour cela, suivre les instructions de la section PostgreSQL Apt Repository de la page https://www.postgresql.org/download/linux/debian/.
Par exemple, sur une Debian 8 Jessie :
- Créer le fichier : /etc/apt/sources.list.d/pgdg.list et y ajouter la ligne pour le dépôt postgreSQL :
deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main
- Ajouter la signature authentifiant le dépôt et mettre à jour la liste des paquets :
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt-get update
- Installer la version 9.5 de postgresql :
aptitude install postgresql-9.5
Paramétrage de postgreSQL
autoriser les connexions depuis le réseau local
Le fichier de configuration pg_hba.conf permet de lister quelles connexions sont autorisées et sur quel canal. Pour rendre les connexions possibles depuis le réseau local, ajouté la ligne suivante (exemple pour le réseau 192.168.42.0/24) :
host all all 192.168.42.0/24 md5
Il est bien sûr possible d'être plus fin mais cela nous semble suffisant.
ajouter le rôle de connexion logeproj
Un rôle de connexion logeproj doit être créé sur postgreSQL pour que le logiciel puisse se connecter aux bases et accéder aux données. Cet utilisateur devra être propriétaire des bases de données de Logeproj et disposer des droits suivant :
- se connecter (indispensable)
- créer des bases de données (facultatif mais nécessaire pour les futures mise à jour ou corrections de bug)
- initier une réplication en flux et une sauvegarde (facultatif mais nécessaire pour les futures mise à jour ou corrections de bug)
Pour créer le rôle, utiliser soit pgadmin, soit une requête avec psql. L'utilisateur logeproj doit disposer d'un mot de passe que nous conseillons robuste et dont il sera nécessaire de se souvenir pour installer les clients et le service.
Attention à la casse : logeproj doit être écrit en minuscules.
Ajuster les directives de configuration du fichier postgresql.conf
- Augmenter le nombre de connexions simultanées :
max_connections = 500
- Amélioration des performance du serveur (attention, ce sont les valeurs pour un serveur disposant de 2Go de mémoire vive) :
shared_buffers = 512 Mo work_mem = 10Mo maintenance_work_mem = 256 Mo effective_cache_size = 1Go checkpoint_completion_target = 0.9
Création des bases de données
Logeproj utilise deux bases de données par site :
- une base contenant les données applicatives
- une base permettant la mise à jour du modèle en mémoire vive des clients
Le nom des bases n'est pas paramétrable : il est composé du code de la structure et d'un suffixe imposé. Par exemple, si le code de la structure est code_structure, deux bases devront être créées :
- code_structure-logeproj-locale
- code_structure-logeproj-synchro