| Prochaine révision | Révision précédente |
| serveurs:installation:db-srv:postgresql-postgis [2020/02/13 14:27] – créée jpmilcent | serveurs:installation:db-srv:postgresql-postgis [2024/02/09 17:53] (Version actuelle) – [Ajout du dépôt Postgresql] jpmilcent |
|---|
| ====== Installer Postgresql 11 et Postgis 3 ====== | ====== Installer Postgresql et Postgis ====== |
| * Supprimer l'éventuelle ancienne version : | |
| * Lister les paquets Postgresql éventuellement déjà installé : ''dpkg -l | grep postgres'' | ===== Ajout du dépôt Postgresql ===== |
| * Supprimer les paquets Postgresql et **ses fichiers de configuration** : ''aptitude purge <liste-des-paquets-précédement-listés'' | * Ajout des dépôts //Postgresql// pour //Debian// : ''<nowiki> sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/postgresql.list'</nowiki>'' |
| * Ajout des dépôts Postgresql : ''<nowiki>sudo bash -c "echo deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main >> /etc/apt/sources.list.d/pgdg.list"</nowiki>'' | * Ajout de la clé du dépôt : ''<nowiki> wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - </nowiki>'' |
| * Ajout de la clé du dépôt : ''<nowiki>wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -</nowiki>'' | * Mise à jour des dépôts : ''apt -y update'' |
| * Mise à jour des dépôts : ''apt -y update'' | |
| * Installer Postgresql 11 & Postgis 3 : | ===== Installer Postgresql et Postgis ===== |
| * Paquets de base : ''aptitude install postgresql-11 postgresql-11-postgis-3 postgresql-server-dev-11'' | * Supprimer une éventuelle ancienne version : |
| * Installer Postgis sans les paquets recommandés : ''<nowiki>aptitude install --without-recommends postgis</nowiki>'' | * 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 : ''<nowiki> apt-get install --no-install-recommends postgis </nowiki>'' |
| * Vérifier l'état du service : ''systemctl status postgresql'' | * Vérifier l'état du service : ''systemctl status postgresql'' |
| * Redémarrer le service si nécessaire : ''systemctl restart postgresql'' | * Redémarrer le service si nécessaire : ''systemctl restart postgresql'' |
| * Activer le service au démarrage du serveur : ''systemctl enable postgresql'' | * Activer le service au démarrage du serveur : ''systemctl enable postgresql'' |
| * Accéder aux bases depuis son poste local par tunel SSH : | |
| * Dans PgAdmin/DBeaver, ajouter un serveur et dans l'onglet //SSH Tunnel// remplir les infos (login & mot de passe) pour l'utilisateur //geonat// | ===== Installer Pg-Activity ===== |
| * Note concernant le service Systemd Postgresql : | * Pg-Activity est l'équivalant pour Postgresql de ''htop'' pour le système. |
| * Il en existe plusieurs visible avec la commande : ''systemctl status postgresql*'' | * Installer le paquet : ''apt install pg-activity'' |
| * C'est le service nommé //postgresql@11-main.service// qui correspond au daemon lancé par le service //postgresql.service// | * Pour visualiser les infos liées à Postgresql et les requêtes (en cours, en attente, bloquantes) : ''sudo -u postgres pg_activity -U postgres'' |
| * Pour l'affichage dans Grafana, utiliser celui nommé : //postgresql@11-main.service// | * Ajouter dans le fichier ''~/.bash_aliases'' des utilisateurs //admin// et //root// l'alias ''pga'' : '' vi ~/.bash_aliases '' <code bash>alias pga='sudo -u postgres pg_activity -U postgres'</code> |
| | |
| | ==== Commandes et requêtes affichant les requêtes actives ==== |
| | * Trouver les requêtes en cours de traitement depuis très longtemps : <code sql> |
| | 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'; |
| | </code> |
| | * 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) : <code sql>SELECT pg_cancel_backend(<pid>);</code> |
| | |
| | ===== 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// |