Alternative à pg_dump

Pour les sauvegardes logiques, Databasus s'appuie sur pg_dump. Plutôt que de remplacer pg_dump, Databasus étend ses capacités avec la gestion des backups, une interface web, la planification automatique, l'intégration du stockage cloud, les notifications, le travail en équipe et le chiffrement intégré. Au-delà des sauvegardes logiques, Databasus prend aussi en charge les sauvegardes physiques, les sauvegardes incrémentales avec archivage des WAL et la restauration à un instant donné (Point-in-Time Recovery).

Comparaison rapide

Voici un aperçu de la façon dont Databasus étend les fonctionnalités de base de pg_dump :

Fonctionnalitépg_dumpDatabasus
Moteur de sauvegardepg_dumpConstruit sur pg_dump
Gestion des backups❌ Non✅ Oui
Autres bases de donnéesPostgreSQL uniquementPostgreSQL, MySQL, MariaDB, MongoDB
InterfaceLigne de commandeInterface web + API
PlanificationManuelle ou scripts cron✅ Planificateur intégré
Destinations de stockageSystème de fichiers localLocal, S3, Google Drive, R2, Azure, NAS, Dropbox
Compressiongzip, LZ4, zstd (manuelle)zstd (automatique, optimisée)
ChiffrementOutils externes requis✅ AES-256-GCM intégré
Notifications❌ Aucune✅ Slack, Teams, Telegram, e-mail, webhooks
Fonctions d'équipe❌ Aucune✅ Espaces de travail, RBAC, journaux d'audit
Politiques de rétentionScripts de nettoyage manuels✅ Rétention automatique
Surveillance de l'état❌ Aucune✅ Health checks intégrés
Sauvegardes physiques❌ Non✅ Oui
Sauvegardes incrémentales❌ Non✅ Par blocs (PG 17+)
Point-in-Time Recovery❌ Non✅ Oui
Sauvegardes distantes✅ Oui (CLI)✅ Oui

Qu'est-ce que pg_dump ?

pg_dump est l'utilitaire natif de PostgreSQL pour créer des sauvegardes logiques. Il fait partie de PostgreSQL depuis ses débuts et reste l'outil standard pour exporter des bases de données.

Points forts de pg_dump

  • Sauvegardes portables : produit des dumps SQL ou au format custom restaurables sur différentes versions de PostgreSQL.
  • Sauvegardes sélectives : peut exporter des tables ou des schémas précis, ou des bases entières.
  • Instantanés cohérents : utilise le MVCC de PostgreSQL pour créer des sauvegardes cohérentes sans bloquer les écritures.
  • Largement pris en charge : présent dans chaque installation PostgreSQL, bien documenté et éprouvé.
  • Formats de sortie flexibles : SQL brut, custom, répertoire ou tar.

Limites de pg_dump

pg_dump est puissant, mais son utilisation en production demande en général des scripts supplémentaires :

  • Pas de planification intégrée : nécessite des tâches cron ou des planificateurs externes.
  • Stockage local uniquement : écrit sur le système de fichiers local ; l'envoi vers le cloud demande des scripts en plus.
  • Pas de chiffrement : les fichiers de backup ne sont pas chiffrés par défaut ; il faut passer par gpg ou un outil similaire.
  • Pas de notifications : aucun moyen d'être alerté du succès ou de l'échec d'une sauvegarde sans scripts maison.
  • Pas de gestion de la rétention : les anciens backups doivent être supprimés à la main ou par script.
  • Ligne de commande uniquement : aucune interface visuelle pour la surveillance ou la gestion.

Comment Databasus étend pg_dump

Databasus utilise pg_dump comme moteur de sauvegarde : il conserve tous les avantages des sauvegardes logiques et ajoute des fonctionnalités d'entreprise par-dessus.

Sous le capot : quand vous lancez une sauvegarde dans Databasus, il exécute pg_dump avec des paramètres optimisés, puis gère la compression, le chiffrement et l'envoi vers la destination de stockage configurée.

Interface web

Au lieu de mémoriser les options de pg_dump en ligne de commande, Databasus fournit une interface web où vous pouvez :

  • Ajouter des bases de données avec un assistant de connexion guidé
  • Configurer les plannings de sauvegarde avec des contrôles visuels
  • Suivre l'historique et le statut des backups d'un coup d'œil
  • Télécharger ou restaurer un backup en un clic
  • Consulter les graphiques d'état et de disponibilité des bases

Compression optimisée

Databasus utilise par défaut la compression zstd (niveau 5), ce qui apporte :

  • Des fichiers 4 à 8 fois plus petits que les dumps non compressés
  • ~20 % de surcoût en temps seulement, bien plus rapide que gzip
  • Une prise en charge automatique, sans avoir à passer par des outils de compression

Au-delà de pg_dump : sauvegardes physiques et PITR

Databasus s'appuie sur pg_dump pour les sauvegardes logiques, mais va aussi au-delà de ce que pg_dump peut offrir :

  • Sauvegardes physiques : copies au niveau fichier de l'ensemble du cluster via pg_basebackup. Sauvegarde et restauration plus rapides pour les grosses bases.
  • Sauvegardes incrémentales et WAL : sauvegardes incrémentales par blocs via pg_basebackup --incremental (pilotées par les résumés WAL côté serveur) plus streaming continu des WAL via pg_receivewal, ce qui permet la restauration à un instant donné : revenez à n'importe quelle seconde entre deux sauvegardes.
  • Reprise après sinistre : conçu pour des exigences de perte de données quasi nulle, avec des sauvegardes physiques de base et un streaming WAL continu.

Ces sauvegardes reposent sur le mécanisme natif de PostgreSQL 17 : Databasus réutilise l'outillage éprouvé de PostgreSQL au lieu de le réinventer. Elles nécessitent PostgreSQL 17 ou plus récent ; sur les versions antérieures, seules les sauvegardes logiques pg_dump sont disponibles. Tout s'exécute à distance depuis l'hôte Databasus via le protocole de réplication, donc rien n'est installé sur le serveur de base de données. Les réseaux fermés sont atteints par un tunnel SSH vers un hôte interne ou un bastion, si bien que la base n'a jamais besoin d'être exposée publiquement. Lisez comment fonctionnent les sauvegardes physiques et PITR.

Automatisation des sauvegardes

L'un des défis les plus courants avec pg_dump est la mise en place de sauvegardes automatiques fiables.

Automatisation traditionnelle de pg_dump

Un script d'automatisation typique de pg_dump peut ressembler à ceci :

#!/bin/bash
# Backup script for pg_dump
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/backups"
DB_NAME="mydb"

# Create backup
pg_dump -Fc -h localhost -U postgres $DB_NAME > $BACKUP_DIR/$DB_NAME_$DATE.dump

# Compress (if not using custom format)
# gzip $BACKUP_DIR/$DB_NAME_$DATE.sql

# Encrypt
gpg --encrypt --recipient backup@company.com $BACKUP_DIR/$DB_NAME_$DATE.dump

# Upload to S3
aws s3 cp $BACKUP_DIR/$DB_NAME_$DATE.dump.gpg s3://my-bucket/backups/

# Cleanup old backups (keep last 7 days)
find $BACKUP_DIR -name "*.dump*" -mtime +7 -delete

# Send notification on failure
if [ $? -ne 0 ]; then
  curl -X POST https://hooks.slack.com/... -d '{"text":"Backup failed!"}'
fi

Ce script doit être maintenu, testé et surveillé. Chaque base de données demande sa propre entrée cron.

Automatisation avec Databasus

Avec Databasus, les mêmes fonctionnalités sont intégrées :

  • Planificateur visuel : programmez des backups horaires, quotidiens, hebdomadaires, mensuels ou cron à des heures précises.
  • Compression automatique : la compression zstd est appliquée automatiquement.
  • Chiffrement intégré : chiffrement AES-256-GCM avec une clé unique par backup.
  • Envoi vers le cloud : envoi direct vers S3, Google Drive, Cloudflare R2, Azure et d'autres destinations.
  • Politiques de rétention : nettoyage automatique des anciens backups selon vos réglages.
  • Notifications : alertes vers Slack, Teams, Telegram ou par e-mail en cas de succès ou d'échec.

Options de stockage

pg_dump écrit sur le système de fichiers local. Envoyer les backups vers un stockage cloud demande des outils et des scripts supplémentaires.

Destinations de stockage de Databasus

Databasus prend en charge plusieurs destinations de stockage sans configuration supplémentaire :

  • Stockage local
  • Amazon S3 et les services compatibles S3
  • Google Drive
  • Cloudflare R2
  • Azure Blob Storage
  • NAS (stockage en réseau)
  • Dropbox

Chaque base de données peut avoir sa propre destination de stockage, et vous pouvez en configurer plusieurs pour la redondance.

Voir toutes les options de stockage →

Notifications

Savoir quand une sauvegarde réussit ou échoue est essentiel pour protéger vos données.

Notifications avec pg_dump

pg_dump n'a aucun système de notification. Vous devez :

  • Écrire des scripts d'encapsulation qui vérifient les codes de retour
  • Vous intégrer à des outils de supervision externes
  • Mettre en place des chaînes d'alerte personnalisées

Notifications avec Databasus

Databasus inclut des notifications intégrées vers :

  • Slack
  • Discord
  • Telegram
  • Microsoft Teams
  • E-mail
  • Webhooks (pour des intégrations personnalisées)

Configurez les événements qui déclenchent les notifications : succès des sauvegardes, échec, ou les deux.

Voir tous les canaux de notification →

Fonctions d'équipe

pg_dump est un outil en ligne de commande mono-utilisateur. Databasus ajoute des fonctions de collaboration pour les équipes :

Capacités d'équipe de Databasus

  • Espaces de travail : organisez bases de données, notifications et stockages par projet ou par équipe. Les utilisateurs ne voient que les espaces où ils sont invités.
  • Contrôle d'accès par rôles : attribuez des permissions lecteur, éditeur ou administrateur pour contrôler ce que chaque membre de l'équipe peut faire.
  • Journaux d'audit : tracez toutes les activités et modifications du système. Indispensable pour la conformité et la traçabilité.
  • Notifications partagées : les canaux d'équipe reçoivent automatiquement le statut des sauvegardes.

En savoir plus sur la gestion des accès →

Sécurité

La sécurité est le domaine où Databasus apporte le plus par rapport à l'utilisation brute de pg_dump.

Sécurité avec pg_dump

pg_dump crée des fichiers de backup non chiffrés. Les sécuriser demande de :

  • Faire passer la sortie par des outils de chiffrement (gpg, openssl)
  • Gérer les clés de chiffrement séparément
  • Garantir un stockage et une rotation sécurisés des clés
  • Configurer correctement les permissions des fichiers

Sécurité avec Databasus

Databasus applique la sécurité à plusieurs niveaux :

  • Chiffrement AES-256-GCM : tous les mots de passe, jetons et identifiants sont chiffrés. La clé de chiffrement est stockée séparément de la base de données.
  • Chiffrement unique par backup : chaque fichier de backup est chiffré avec une clé unique dérivée de la clé maîtresse, de l'identifiant du backup et d'un sel aléatoire.
  • Accès en lecture seule à la base : seules les permissions SELECT sont exigées, ce qui empêche toute corruption des données même en cas de compromission.

En savoir plus sur la sécurité de Databasus →

Processus de restauration

Les deux outils permettent de restaurer des backups, mais avec des flux de travail différents.

Restaurer des backups pg_dump

Restaurer un backup pg_dump demande de :

  1. Localiser le fichier de backup
  2. Le déchiffrer s'il est chiffré
  3. Le décompresser s'il est compressé
  4. Lancer pg_restore ou psql avec les bons paramètres

Restaurer des backups Databasus

Databasus simplifie la restauration :

  • Téléchargement en un clic : téléchargez n'importe quel backup directement depuis l'interface web.
  • Déchiffrement automatique : les backups sont déchiffrés automatiquement au téléchargement.
  • Commandes de restauration fournies : Databasus affiche la commande pg_restore exacte pour chaque backup.
  • Restauration parallèle : exploitez plusieurs cœurs CPU pour restaurer plus vite les grosses bases.

Installation

Installation de pg_dump

pg_dump est fourni avec PostgreSQL. Si PostgreSQL est installé, vous avez déjà pg_dump.

Installation de Databasus

Databasus propose plusieurs méthodes d'installation :

  • Script en une ligne : installe Docker (si nécessaire), met en place Databasus et configure le démarrage automatique.
  • Docker run : une seule commande pour démarrer avec PostgreSQL embarqué.
  • Docker Compose : pour plus de contrôle sur le déploiement.

Voir le guide d'installation →

Conclusion

pg_dump est l'utilitaire de sauvegarde éprouvé de PostgreSQL, et Databasus est construit directement dessus. Le choix entre utiliser pg_dump directement ou via Databasus dépend de vos besoins.

Utilisez pg_dump directement si :

  • Vous avez besoin d'exports ponctuels ou occasionnels
  • Écrire et maintenir des scripts shell ne vous pose pas de problème
  • Vous avez déjà une infrastructure d'automatisation (Ansible, Terraform, etc.)
  • Il vous faut seulement des backups locaux, sans stockage cloud
  • Vous êtes un développeur seul avec des besoins simples

Utilisez Databasus si :

  • Vous voulez des sauvegardes automatiques et planifiées sans écrire de scripts
  • Vous devez stocker les backups dans le cloud (S3, Google Drive, etc.)
  • Vous voulez un chiffrement intégré sans gérer les clés à la main
  • Vous avez besoin de notifications de succès ou d'échec
  • Vous travaillez en équipe et avez besoin de fonctions de collaboration
  • Vous préférez une interface visuelle à la ligne de commande
  • Vous voulez des politiques de rétention et un nettoyage automatiques
  • Vous avez besoin de sauvegardes physiques, de sauvegardes incrémentales ou de Point-in-Time Recovery pour la reprise après sinistre

Databasus s'appuie sur pg_dump pour les sauvegardes logiques et l'étend avec l'automatisation, la sécurité et les fonctions d'équipe. Au-delà, Databasus prend aussi en charge les sauvegardes physiques, les sauvegardes incrémentales avec archivage des WAL et le Point-in-Time Recovery, des capacités que pg_dump ne peut tout simplement pas offrir.