PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 17.1 » Référence » Applications client de PostgreSQL » pg_combinebackup

pg_combinebackup

pg_combinebackup — reconstruit une sauvegarde complète à partir d'une sauvegarde incrémentale et de toutes celles dont elle dépend

Synopsis

pg_combinebackup [option...] [repertoire_de_sauvegarde...]

Description

pg_combinebackup est utilisé pour reconstruire une sauvegarde complète synthétique à partir d'une sauvegarde incrémentale et de toutes les sauvegardes précédentes dont celle-ci dépend.

Spécifier sur la ligne de commande toutes les sauvegardes requises, de la plus ancienne à la plus récente. Le premier répertoire de sauvegarde doit donc être le chemin vers la sauvegarde complète, et le dernier le chemin de la sauvegarde incrémentale finale que vous souhaitez restaurer. La sauvegarde ainsi reconstruite sera écrite dans le répertoire de sortie spécifié avec l'option -o.

pg_combinebackup essaiera de vérifier que les sauvegardes fournies forment une chaîne de sauvegardes valide, à partir desquelle une sauvegarde complète correcte peut être reconstruite. Cependant, il n'est pas conçu pour vous aider à suivre quelles sauvegardes dépendent de quelles autres sauvegardes. Si vous supprimez une ou plusieurs des sauvegardes précédentes dont dépend votre sauvegarde incrémentale, vous ne pourrez pas la restaurer. De plus, pg_combinebackup tente seulement de vérifier que les sauvegardes sont correctement reliées entre elles, et pas que chaque sauvegarde individuelle est intacte ; pour cela, utilisez pg_verifybackup.

Puisque la sortie de pg_combinebackup est une sauvegarde complète synthétique, elle peut elle-même être utilisée comme source d'une future invocation de pg_combinebackup. La sauvegarde complète synthétique est à fournir sur la ligne de commande à la place de la chaîne de sauvegardes à partir de laquelle elle fut reconstruite.

Options

-d
--debug

Affiche beaucoup de messages de debug sur stderr.

-n
--dry-run

L'option -n/--dry-run demande à pg_combinebackup de déterminer ce qui serait fait, sans réellement créer le répertoire cible ou les fichiers de sortie éventuels. Elle est particulièrement utile en combinaison avec l'option --debug.

-N
--no-sync

Par défaut, pg_combinebackup attend que tous les fichiers soient écrits et sécurisés sur le disque. Cette option lui permet de rendre la main sans attendre, ce qui est plus rapide, mais implique qu'un crash ultérieur du système d'exploitation peut corrompre la sauvegarde obtenue. De manière générale, cette option est utile durant les tests, mais ne devrait pas être utilisée dans un environnement de production.

-o repertoire_de_sortie
--output=repertoire_de_sortie

Spécifie le répertoire de sortie dans lequel la sauvegarde complète synthétique doit être écrite. Pour le moment, cet argument est obligatoire.

-T ancien_repertoire=nouveau_repertoire
--tablespace-mapping=ancien_repertoire=nouveau_repertoire

Déplace le tablespace du répertoire ancien_repertoire vers le répertoire nouveau_repertoire pendant la sauvegarde. ancien_repertoire est le chemin absolu du tablespace tel qu'il est défini dans la sauvegarde finale spécifiée sur la ligne de commande, et nouveau_repertoire est le chemin absolu à utiliser pour le tablespace dans la sauvegarde reconstruite. Si l'un des chemin doit contenir un signe égal (=), échappez-le avec un anti-slash. Cette option peut être spécifiée plusieurs fois pour différents tablespaces.

--clone

Utiliser le clonage de fichiers (également appelé « reflinks » sur certains systèmes), plus efficace que la copie des fichiers vers le nouveau répertoire de données ; cela peut permettre une copie quasi instantanée des fichiers de données.

Si un manifeste de sauvegarde n'est pas disponible, ou ne contient pas de somme de contrôle du bon type, le clonage de fichiers sera utilisé pour copier le fichier, mais le fichier sera également lu bloc par bloc pour le calcul de la somme de contrôle.

Le clonage de fichiers est uniquement supporté sur certains systèmes d'exploitation et systèmes de fichiers. Si cette option est sélectionnée mais non supportée, pg_combinebackup se terminera avec une erreur. Actuellement, le clonage est supporté sur Linux (noyau 4.5 ou ultérieur) avec Btrfs et XFS (sur des systèmes de fichiers créés avec le support des reflinks), ainsi que sur macOS avec APFS.

--copy

Réalise une copie standard de fichier. C'est l'option par défaut. (Voir aussi --copy-file-range et --clone.)

--copy-file-range

Utiliser l'appel système copy_file_range pour un clonage efficace. Sur certains systèmes de fichiers, cela donne des résultats similaires à --clone en partageant les blocs physiques du disque, tandis que sur d'autres, cet appel pourrait toujours copier les blocs, mais de manière optimisée. Actuellement, ceci est supporté sur Linux et FreeBSD.

Si un manifeste de sauvegarde n'est pas disponible ou ne contient pas de somme de contrôle du bon type, copy_file_range sera utilisé pour copier le fichier, mais le fichier sera également lu bloc par bloc pour le calcul de la somme de contrôle.

--manifest-checksums=algorithme

Comme pg_basebackup, pg_combinebackup écrit un manifeste de sauvegarde dans le répertoire de sortie. Cette option spécifie l'algorithme des sommes de contrôle appliqué à chaque fichier inclus dans le manifeste de la sauvegarde. Pour le moment, les algorithmes disponibles sont NONE, CRC32C, SHA224, SHA256, SHA384, et SHA512. Le défaut est CRC32C.

--no-manifest

Désactive la génération du manifeste de la sauvegarde. Si cette option n'est pas spécifiée, un manifeste pour la sauvegarde reconstruite sera écrit dans le répertoire de sortie.

--sync-method=méthode

Pour la valeur fsync, qui est celle par défaut, pg_combinebackup va ouvrir récursivement et synchroniser sur disque tous les fichiers présents dans le répertoire de la sauvegarde. Quand le format plain est utilisé, la recherche des fichiers suit les liens symboliques du répertoire des journaux de transactions et de chaque tablespace en place.

Sous Linux, syncfs peut remplacer une demande au système d'exploitation de synchroniser l'ensemble du système de fichiers du répertoire de sauvegarde. Lorsque le format plain est utilisé, pg_combinebackup synchronise également les systèmes de fichiers contenant les journaux de transactions et chaque tablespace. Consulter recovery_init_sync_method pour obtenir des informations sur les mises en garde à prendre en compte lors de l'utilisation de syncfs.

Cette option n'a pas d'effet quand --no-sync est utilisé.

-V
--version

Affiche la version de pg_combinebackup, puis quitte.

-?
--help

Affiche l'aide sur les arguments en ligne de commande de pg_combinebackup, puis quitte.

Limitations

pg_combinebackup ne recalcule pas les sommes de contrôle des blocs lors de l'écriture du répertoire de sortie. Par conséquent, si l'une des sauvegardes utilisées pour la reconstruction a été effectuée avec les sommes de contrôle désactivées, mais que la sauvegarde finale l'a été avec les sommes de contrôle activées, le répertoire final peut contenir des blocs avec des sommes de contrôle invalides.

Pour éviter ce problème, il est recommandé de prendre une nouvelle sauvegarde complète après avoir modifié l'état des sommes de contrôle de l'instance en utilisant pg_checksums. Sinon, vous pouvez désactiver puis, si nécessaire, réactiver les sommes de contrôle sur le répertoire produit par pg_combinebackup pour corriger le problème.

Environnement

Cet outil, comme la plupart des outils PostgreSQL, utilise les variables d'environnement supportées par la bibliothèque libpq (voir Section 32.15).

La variable d'environnement PG_COLOR indique s'il faut utiliser les couleurs dans les messages de diagnostique. Les valeurs possibles sont always, auto et never.

Voir aussi

pg_basebackup