J'utilise actuellement pg_dump
redirigé vers gzip
redirigé vers split
. Mais le problème est que tous les fichiers de sortie sont toujours modifiés. La sauvegarde basée sur la somme de contrôle copie donc toujours toutes les données.
Existe-t-il d'autres bons moyens d'effectuer une sauvegarde incrémentielle d'une base de données PostgreSQL, où une base de données complète peut être restaurée à partir des données de sauvegarde?
Par exemple, si pg_dump
pourrait tout rendre absolument ordonné, donc toutes les modifications ne sont appliquées qu'à la fin du vidage, ou similaire.
Mise à jour: Consultez Barman pour un moyen plus simple de configurer l'archivage WAL pour la sauvegarde.
Vous pouvez utiliser la méthode archivage WAL continu de PostgreSQL . Vous devez d'abord définir wal_level=archive
, Puis effectuer une sauvegarde complète au niveau du système de fichiers (entre les commandes pg_start_backup()
et pg_stop_backup()
), puis copier simplement les fichiers WAL plus récents en configurant l'option archive_command
.
Avantages:
Désavantages:
Il existe des outils tels que pitrtools et omnipitr qui peuvent simplifier la configuration et la restauration de ces configurations. Mais je ne les ai pas utilisés moi-même.
Consultez également http://www.pgbackrest.org
pgBackrest est un autre outil de sauvegarde pour PostgreSQL que vous devriez évaluer car il prend en charge:
Une autre méthode consiste à sauvegarder en texte brut et à utiliser rdiff pour créer des différences incrémentielles.