Comme AlloyDB Omni est compatible avec PostgreSQL, les commandes et techniques de restauration de données décrites dans le manuel pgBackRest s'appliquent également à AlloyDB Omni. Cette page présente une sélection de tâches de récupération courantes, avec des exemples de commandes pertinentes.
Pour en savoir plus sur la configuration de pgBackRest pour qu'il fonctionne avec AlloyDB Omni, consultez Configurer pgBackRest pour AlloyDB Omni.
Pour en savoir plus sur Kubernetes, consultez Sauvegarder et restaurer dans Kubernetes.
Avant de commencer
Avant de configurer AlloyDB Omni pour qu'il fonctionne avec pgBackrest, vous devez installer et exécuter AlloyDB Omni sur un serveur que vous contrôlez.
Un serveur de base de données cible exécutant la même version majeure d'AlloyDB Omni que la sauvegarde que vous souhaitez restaurer. Pour en savoir plus sur l'installation d'AlloyDB Omni, consultez Installer AlloyDB Omni.
Un dépôt de sauvegarde pgBackRest contenant au moins une sauvegarde de la base de données AlloyDB Omni source.
L'espace disque libre sur le serveur cible doit être suffisant pour contenir la base de données restaurée.
Présentation
Pour effectuer une restauration AlloyDB Omni à l'aide de pgBackRest, exécutez la commande pgbackrest restore
. Les paramètres que vous fournissez à la commande varient en fonction de votre situation.
En règle générale, vous exécutez la commande pgbackrest restore
avec des indicateurs qui fournissent les informations suivantes :
- Emplacement de votre fichier
pgbackrest.conf
. - Nom du dépôt de sauvegarde pgBackRest dans lequel vous souhaitez effectuer la restauration. Ces dépôts sont nommés et définis dans le fichier
pgbackrest.conf
. - Emplacement du système de fichiers local où écrire les données restaurées.
- Identifiant de la sauvegarde ou du point dans le temps à partir duquel vous souhaitez effectuer la restauration.
Lorsque vous exécutez les commandes pgbackrest restore
conteneurisées, n'oubliez pas d'utiliser les chemins du système de fichiers du point de vue du conteneur. Par exemple, le chemin d'accès à votre répertoire de données AlloyDB Omni est toujours /var/lib/postgresql/data
, quelle que soit son emplacement sur votre serveur hôte. Pour en savoir plus, consultez Remarque concernant les chemins d'accès au système de fichiers.
Effectuer une restauration à un moment précis
Cet exemple restaure les données d'un dépôt pgBackRest en spécifiant un moment précis de restauration. Si vous avez défini plusieurs dépôts dans le fichier pgbackrest.conf
de l'environnement cible, pgBackRest choisit le dépôt à partir duquel effectuer la restauration en fonction de la disponibilité, de la vitesse attendue et d'autres facteurs.
L'exemple suppose ce qui suit :
Vous disposez d'un fichier
pgbackrest.conf
situé au niveau supérieur de votre répertoire de données AlloyDB Omni cible. Cela rend le fichier disponible pourpgbackrest
conteneurisé en tant que/var/lib/postgresql/data
.Vous avez activé les sauvegardes continues avec votre configuration pgBackRest.
Dans l'environnement cible, effectuez une restauration PITR en spécifiant un code temporel de restauration :
Docker
docker exec CONTAINER_NAME pgbackrest \ --config-path=/var/lib/postgresql/data \ --stanza=STANZA \ --type=time \ --pg1-path=/var/lib/postgresql/data/data-RESTORED \ --target="TIMESTAMP" \ restore
Remplacez les éléments suivants :
CONTAINER_NAME
: nom que vous avez attribué au conteneur AlloyDB Omni lors de son installation (par exemple,my-omni
).STANZA
: strophe de configuration, définie par le fichierpgbackrest.conf
, à appliquer à cette restauration (par exemple,omni
).TIMESTAMP
: heure de la restauration, par exemple2024-02-22 19:50:00
.
Podman
podman exec CONTAINER_NAME pgbackrest \ --config-path=/var/lib/postgresql/data \ --stanza=STANZA \ --type=time \ --pg1-path=/var/lib/postgresql/data/data-RESTORED \ --target="TIMESTAMP" \ restore
Remplacez les éléments suivants :
CONTAINER_NAME
: nom que vous avez attribué au conteneur AlloyDB Omni lors de son installation (par exemple,my-omni
).STANZA
: strophe de configuration, définie par le fichierpgbackrest.conf
, à appliquer à cette restauration (par exemple,omni
).TIMESTAMP
: heure de la restauration, par exemple2024-02-22 19:50:00
.
Dans l'environnement cible, arrêtez le conteneur à l'aide de la commande suivante :
Docker
docker container stop CONTAINER_NAME
Podman
podman container stop CONTAINER_NAME
Par mesure de sécurité, renommez le sous-répertoire
data
de votre répertoire de données :cd DATA_DIR
sudo mv data data-OLD
Remplacez
DATA_DIR
par le chemin d'accès au système de fichiers de votre répertoire de données AlloyDB Omni.Déplacez les données restaurées et nettoyez-les
postgresql.auto.conf
:sudo mv data-RESTORED data
sudo sed -i 's|data-RESTORED|data|' data/postgresql.auto.conf
Démarrez le conteneur AlloyDB Omni avec le serveur de base de données :
Docker
docker container start CONTAINER_NAME
Podman
podman container start CONTAINER_NAME
Vous pouvez maintenant vous connecter à votre base de données à l'aide de psql
et vérifier que les données ont été restaurées comme prévu. Si c'est le cas, vous pouvez supprimer la copie data-OLD
du sous-répertoire data
que vous avez créé précédemment.
Pour en savoir plus sur la récupération PITR dans pgBackRest, consultez Récupération à un moment précis.
Pour en savoir plus sur la préparation d'un fichier pgbackrest.conf
à utiliser avec AlloyDB Omni, consultez Configurer pgBackRest pour AlloyDB Omni.
Autres options
La commande pgbackrest restore
est très flexible et propose un large éventail d'options et de fonctionnalités que vous pouvez contrôler en transmettant différentes options de ligne de commande. En voici quelques-unes :
- Limiter la restauration aux seuls fichiers modifiés.
- Restauration de bases de données sélectionnées uniquement.
Pour obtenir un guide complet sur la restauration dans pgBackRest, consultez Restore.