serveurs:installation:db-srv:postgresql-postgis

Installer Postgresql et Postgis

  • 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
  • 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
  • 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'
  • 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>);

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
  • serveurs/installation/db-srv/postgresql-postgis.txt
  • Dernière modification : 2024/02/09 17:53
  • de jpmilcent