PostgreSQL

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type SGBD relationnel-objet open source
Port par défaut 5432/tcp
Config principale postgresql.conf
Contrôle d'accès pg_hba.conf
Client CLI psql
Voir aussi PostgreSQL install · Psql · Pg dump · PostgreSQL debian

PostgreSQL est un système de gestion de bases de données relationnelles-objet (SGBDR) open source, distribué sous licence PostgreSQL (licence permissive de type BSD/MIT). Il est réputé pour sa forte conformité au standard SQL, sa robustesse transactionnelle (ACID, MVCC) et son extensibilité (types de données personnalisés, index spécialisés, extensions comme PostGIS pour le géospatial).

Présentation

Issu à l'origine du projet universitaire POSTGRES (Berkeley, années 1980) — le nom vient de là — PostgreSQL a évolué vers un moteur SQL complet et est aujourd'hui l'un des SGBD open source les plus utilisés en production, aux côtés de MySQL/MariaDB.

Points forts couramment cités :

  • gestion fine de la concurrence via MVCC (pas de verrouillage en lecture bloquant l'écriture) ;
  • richesse des types de données (JSON/JSONB, tableaux, types géométriques, UUID...) ;
  • extensibilité par modules (CREATE EXTENSION) — PostGIS, pg_stat_statements,
 pg_trgm, etc. ;
  • réplication native (streaming replication, réplication logique).

Architecture

Une instance PostgreSQL démarre un processus principal (postmaster) qui supervise plusieurs processus dédiés, visibles dans la liste des process (ps -ef | grep postgres) :

  • writer — écrit les pages modifiées (dirty pages) du cache vers le disque ;
  • wal writer — écrit le journal des transactions (WAL, Write-Ahead Log) ;
  • checkpointer — synchronise périodiquement l'état du cache sur disque (checkpoint) ;
  • autovacuum launcher — déclenche le nettoyage automatique (VACUUM) des tables ;
  • stats collector — collecte les statistiques d'activité.

Le comportement de l'instance est piloté par deux fichiers principaux, situés dans le répertoire de données (PGDATA) :

  • postgresql.conf — paramètres du moteur (mémoire, réseau, journalisation...) ;
  • pg_hba.conf — contrôle d'accès (quelle méthode d'authentification pour quel
 hôte/utilisateur/base).

Écosystème

  • psql — client interactif en ligne de commande, voir Psql.
  • pg_dump / pg_restore — sauvegarde et restauration logiques, voir Pg dump.
  • pgbouncer — pooler de connexions léger, souvent placé devant l'instance en production
 (exemple d'usage détaillé sur PostgreSQL debian).

Documentation

Voir aussi

  • PostgreSQL install — installation et configuration de base (RHEL/CentOS)
  • PostgreSQL debian — cas concret d'exploitation multi-instances sous Debian, avec pgbouncer
  • Psql — client en ligne de commande, méta-commandes, création de bases/rôles
  • Pg dump — sauvegarde et restauration logiques
  • MongoDB — alternative NoSQL orientée documents
  • Sql — langage SQL générique