====== Installer Postgresql et Postgis ====== ===== Ajout du dépôt Postgresql ===== * Ajout des dépôts //Postgresql// pour //Debian// : '' sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/postgresql.list''' * Ajout de la clé du dépôt : '' wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - '' * Mise à jour des dépôts : ''apt -y update'' ===== Installer Postgresql et Postgis ===== * Supprimer une éventuelle ancienne version : * Lister les paquets //Postgresql// éventuellement déjà installé : ''dpkg -l | grep postgres'' * Supprimer les paquets Postgresql et **ses fichiers de configuration** : ''apt purge '' * Installer //Postgresql 15// et //Postgis 3// : * Paquets de base : ''apt install postgresql-15 postgresql-15-postgis-3'' * Installer //Postgis// sans les paquets recommandés : '' apt-get install --no-install-recommends postgis '' * Vérifier l'état du service : ''systemctl status postgresql'' * Redémarrer le service si nécessaire : ''systemctl restart postgresql'' * Activer le service au démarrage du serveur : ''systemctl enable postgresql'' ===== Installer Pg-Activity ===== * Pg-Activity est l'équivalant pour Postgresql de ''htop'' pour le système. * Installer le paquet : ''apt install pg-activity'' * Pour visualiser les infos liées à Postgresql et les requêtes (en cours, en attente, bloquantes) : ''sudo -u postgres pg_activity -U postgres'' * Ajouter dans le fichier ''~/.bash_aliases'' des utilisateurs //admin// et //root// l'alias ''pga'' : '' vi ~/.bash_aliases '' alias pga='sudo -u postgres pg_activity -U postgres' ==== Commandes et requêtes affichant les requêtes actives ==== * Trouver les requêtes en cours de traitement depuis très longtemps : SELECT pid, now() - pg_stat_activity.query_start AS duration, query, state FROM pg_stat_activity WHERE (now() - pg_stat_activity.query_start) > interval '5 minutes'; * Forcer l'arrêt d'une requête de manière relativement sûre (remplacer '''' par le nombre fourni par la requête précédente) : SELECT pg_cancel_backend(); ===== Accès aux bases via tunnel SSH ===== Pour accéder aux bases depuis son poste local, nous pouvons utiliser un tunnel //SSH// : * Dans //PgAdmin/DBeaver//, ajouter un serveur et dans l'onglet //SSH Tunnel// remplir les infos (login & mot de passe) pour l'utilisateur //geonat// ===== Note concernant le service Systemd Postgresql ===== * Il en existe plusieurs visible avec la commande : ''systemctl status postgresql*'' * C'est le service nommé //postgresql@11-main.service// qui correspond au //daemon// lancé par le service //postgresql.service// * Pour l'affichage dans //Grafana//, utiliser celui nommé : //postgresql@11-main.service//