PostgreSQL
| 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
- https://www.postgresql.org/ — site officiel
- https://www.postgresql.org/docs/ — documentation officielle (toutes versions)
- https://www.dalibo.org/ — documentation et ressources francophones (société Dalibo)
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