Restaurer un cluster AlloyDB Omni à l'aide de pgBackRest

Cette page explique comment restaurer un cluster AlloyDB Omni à l'aide d'une sauvegarde créée avec pgBackRest, la solution de sauvegarde Open Source incluse avec le conteneur Docker AlloyDB Omni.

Étant donné qu'AlloyDB Omni est compatible avec PostgreSQL, les commandes et techniques de restauration des 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 AlloyDB Omni, consultez la section 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.

  • Espace disque disponible suffisant sur le serveur cible pour accueillir 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, exécutez la commande pgbackrest restore avec des options 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 moment précis à partir duquel vous souhaitez effectuer la restauration.

Lorsque vous exécutez les commandes pgbackrest restore conteneurisées, n'oubliez pas d'utiliser les chemins d'accès au 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, quel que soit son emplacement sur votre serveur hôte. Pour en savoir plus, consultez la section 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 à partir d'un dépôt pgBackRest, en spécifiant un point dans le temps à restaurer. 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 au niveau supérieur de votre répertoire de données AlloyDB Omni cible. Le fichier est ainsi disponible pour le pgbackrest conteneurisé en tant que /var/lib/postgresql/data.

  • Vous avez activé les sauvegardes continues avec votre configuration pgBackRest.

  1. Dans l'environnement cible, effectuez une restauration PITR en spécifiant un code temporel de restauration:

    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: la strophe de configuration, définie par le fichier pgbackrest.conf, à appliquer à cette restauration (par exemple, omni).

    • TIMESTAMP: heure de restauration (par exemple, 2024-02-22 19:50:00).

  2. Dans l'environnement cible, arrêtez le conteneur à l'aide de la commande suivante:

    docker container stop CONTAINER_NAME
  3. Renommez le sous-répertoire data de votre répertoire de données par mesure de précaution:

    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.

  4. Déplacez les données restaurées et nettoyez postgresql.auto.conf:

    sudo mv data-RESTORED data
    sudo sed -i 's|data-RESTORED|data|' data/postgresql.auto.conf
  5. Démarrez le conteneur AlloyDB Omni avec le serveur de base de données:

    docker 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, avec un é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 une restauration aux fichiers modifiés
  • Restauration de certaines bases de données uniquement.

Pour obtenir un guide complet sur l'exécution de restaurations dans pgBackRest, consultez Restaurer.