====== 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//