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 <liste-des-paquets-précédement-listés>
- 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'aliaspga
: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
<pid>
par le nombre fourni par la requête précédente) :SELECT pg_cancel_backend(<pid>);
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