Restaurer un cluster AlloyDB Omni à l'aide de pgBackRest

Sélectionnez une version de la documentation :

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.

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.

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.

  • 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 arguments 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 à 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 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 /mnt/disks/pgsql, 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 des données à partir d'un dépôt pgBackRest, en spécifiant un moment précis à 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 situé au niveau supérieur de votre répertoire de données AlloyDB Omni cible. Cela rend le fichier disponible pour 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 : 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. 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.

  4. 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
  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 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.