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.

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 le serveur de base de données source. Pour en savoir plus sur l'installation d'AlloyDB Omni, consultez Installer AlloyDB Omni.

    Le serveur cible peut être la même machine que le serveur source.

  • 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 arguments que vous fournissez à la commande varient selon 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 à partir duquel vous souhaitez effectuer la restauration. Ces dépôts sont nommés et définis dans le fichier pgbackest.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 /mnt/disks/pgsql, 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 temporel particulier à partir duquel effectuer la 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 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 /mnt/disks/pgsql/pgbackrest.conf.

  • 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 à partir duquel effectuer la restauration:

    sudo docker exec pg-service pgbackrest \
      --config-path=/mnt/disks/pgsql \
      --stanza=STANZA \
      --type=time \
      --pg1-path=/mnt/disks/pgsql/data-RESTORED \
      --target="TIMESTAMP" \
      restore

    Remplacez les éléments suivants :

    • STANZA: la strophe de configuration, définie par le fichier pgbackrest.conf, à appliquer à cette restauration (par exemple, omni).

    • TIMESTAMP: heure à partir de laquelle effectuer la restauration (par exemple, 2024-02-22 19:50:00).

  2. Dans l'environnement cible, arrêtez le serveur de base de données:

    sudo alloydb database-server stop
  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 serveur de base de données:

    sudo alloydb database-server start

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.