serveurs:installation:db-srv:postgresql-postgis

Ceci est une ancienne révision du document !


Installer Postgresql et Postgis

  • Ajout des dépôts Postgresql pour Debian Buster : sudo bash -c "echo deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main >> /etc/apt/sources.list.d/pgdg.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
  • 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 : aptitude purge <liste-des-paquets-précédement-listés>
  • Installer Postgresql 11 et Postgis 3 :
    • Paquets de base : aptitude install postgresql-11 postgresql-11-postgis-3 postgresql-server-dev-11
    • Installer Postgis sans les paquets recommandés : aptitude install --without-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
  • Pg-Activity est l'équivalant pour Postgresql de htop pour le système.
  • Installer le paquet : aptitude 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'

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
  • 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
  • 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>);
  • serveurs/installation/db-srv/postgresql-postgis.1615649431.txt.gz
  • Dernière modification : 2021/03/13 15:30
  • de jpmilcent