pg_combinebackup — reconstruit une sauvegarde complète à partir d'une sauvegarde incrémentale et de toutes celles dont elle dépend
pg_combinebackup
[option
...] [repertoire_de_sauvegarde
...]
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.
-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.
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.
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
.