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 de une sauvegarde créée avec pgBackRest, la solution de sauvegarde Open Source incluse avec AlloyDB Omni.

Comme AlloyDB Omni est compatible avec PostgreSQL, les commandes et techniques de restauration de données décrites par 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.

Les clusters compatibles avec la TDE prennent également en charge la sauvegarde et la restauration à l'aide de pgBackRest. Pour en savoir plus, consultez Créer un cluster compatible avec la TDE.

Pour en savoir plus sur la configuration de pgBackRest pour qu'il fonctionne avec AlloyDB Omni, consultez Configurer pgBackRest pour AlloyDB Omni.

Pour obtenir des informations sur Kubernetes, consultez Sauvegarder et restaurer dans Kubernetes.

Avant de commencer

Avant de restaurer un cluster AlloyDB Omni, assurez-vous de disposer des éléments suivants :

  • Espace disque suffisant sur le système de fichiers de destination pour stocker le cluster de bases de données AlloyDB Omni restauré.

  • Même version majeure d'AlloyDB Omni utilisée pour l'instance de base de données de restauration que l'instance de base de données source d'origine.

    Pour vérifier votre version de PostgreSQL, exécutez la commande suivante :

    Docker

    docker exec -u postgres CONTAINER_NAME psql -c "SELECT version();"
    

    Docker

    docker exec -u postgres CONTAINER_NAME psql -c "SELECT version();"
    

    Podman

    podman exec -u postgres CONTAINER_NAME psql -c "SELECT version();"
    

    Podman

    podman exec -u postgres CONTAINER_NAME psql -c "SELECT version();"
    

    Remplacez la variable suivante :

    • CONTAINER_NAME : nom que vous avez utilisé pour votre conteneur. Exemple : my-omni-1.

    Pour vérifier votre version de pgBackRest, exécutez la commande suivante :

    Docker

    docker exec -u postgres CONTAINER_NAME pgbackrest version
    

    Docker

    docker exec -u postgres CONTAINER_NAME pgbackrest version
    

    Podman

    podman exec -u postgres CONTAINER_NAME pgbackrest version
    

    Podman

    podman exec -u postgres CONTAINER_NAME pgbackrest version
    

    Remplacez la variable suivante :

    • CONTAINER_NAME : nom que vous avez utilisé pour votre conteneur. Exemple : my-omni-1.

    Si votre conteneur cible possède une version différente de PostgreSQL, de pgBackRest ou des deux, vous devez créer un conteneur cible avec une version correspondante. Si cela n'est pas possible, vous devez utiliser une autre méthode, telle que les utilitaires pg_dump ou pg_dumpall inclus dans PostgreSQL pour copier vos bases de données entre les versions.

  • Arrêter votre conteneur AlloyDB Omni

    Pour simuler l'indisponibilité de votre cluster de bases de données AlloyDB Omni, arrêtez le conteneur.

    Docker

    docker stop CONTAINER_NAME
    docker rm CONTAINER_NAME

    Docker

    docker stop CONTAINER_NAME
    docker rm CONTAINER_NAME

    Podman

    podman stop CONTAINER_NAME
    podman rm CONTAINER_NAME

    Podman

    podman stop CONTAINER_NAME
    podman rm CONTAINER_NAME

    Remplacez la variable suivante :

    • CONTAINER_NAME : nom que vous avez utilisé pour votre conteneur. Exemple : my-omni-1.

    Créer un conteneur AlloyDB Omni inactif

    Docker

    docker run -d --name CONTAINER_NAME \
    -v DATA_DIR:/var/lib/postgresql/data \
    -v BACKUP_DIR:/var/lib/postgresql/backups \
    -p HOST_PORT:5432 \
    --restart=always \
    google/alloydbomni:latest sleep infinity
    

    Docker

    docker run -d --name CONTAINER_NAME \
    -v DATA_DIR:/var/lib/postgresql/data \
    -v BACKUP_DIR:/var/lib/postgresql/backups \
    -p HOST_PORT:5432 \
    --restart=always \
    google/alloydbomni:latest sleep infinity
    

    Podman

    podman run -d --name CONTAINER_NAME \
    -v DATA_DIR:/var/lib/postgresql/data \
    -v BACKUP_DIR:/var/lib/postgresql/backups \
    -p HOST_PORT:5432 \
    --restart=always \
    docker.io/google/alloydbomni:latest sleep infinity
    

    Podman

    podman run -d --name CONTAINER_NAME \
    -v DATA_DIR:/var/lib/postgresql/data \
    -v BACKUP_DIR:/var/lib/postgresql/backups \
    -p HOST_PORT:5432 \
    --restart=always \
    docker.io/google/alloydbomni:latest sleep infinity
    

    Remplacez les variables suivantes :

    • CONTAINER_NAME : nom que vous avez utilisé pour votre conteneur. Exemple : my-omni-1.
    • DATA_DIR: chemin d'accès au répertoire hôte dans lequel vos données sont stockées.
    • BACKUP_DIR: chemin d'accès au répertoire externe dans lequel vos sauvegardes sont stockées.
    • HOST_PORT: port TCP sur la machine hôte sur lequel le conteneur doit publier son propre port 5432. Pour utiliser également le port PostgreSQL par défaut sur la machine hôte, spécifiez 5432.

    Supprimer votre répertoire de données

    Pour effacer votre cluster de bases de données AlloyDB Omni, supprimez le répertoire de données.

    Docker

    docker exec CONTAINER_NAME sh -c "rm -rf /var/lib/postgresql/data/*"
    

    Docker

    docker exec CONTAINER_NAME sh -c "rm -rf /var/lib/postgresql/data/*"
    

    Podman

    podman exec CONTAINER_NAME sh -c "rm -rf /var/lib/postgresql/data/*"
    

    Podman

    podman exec CONTAINER_NAME sh -c "rm -rf /var/lib/postgresql/data/*"
    

    Remplacez la variable suivante :

    • CONTAINER_NAME : nom que vous avez utilisé pour votre conteneur. Exemple : my-omni-1.

    Vérifier que vos sauvegardes sont visibles

    Docker

    docker exec -u postgres CONTAINER_NAME pgbackrest \
    --config-path=/var/lib/postgresql/backups \
    --stanza=STANZA_NAME \
    info
    

    Docker

    docker exec -u postgres CONTAINER_NAME pgbackrest \
    --config-path=/var/lib/postgresql/backups \
    --stanza=STANZA_NAME \
    info
    

    Podman

    podman exec -u postgres CONTAINER_NAME pgbackrest \
    --config-path=/var/lib/postgresql/backups \
    --stanza=STANZA_NAME \
    info
    

    Podman

    podman exec -u postgres CONTAINER_NAME pgbackrest \
    --config-path=/var/lib/postgresql/backups \
    --stanza=STANZA_NAME \
    info
    

    Remplacez les variables suivantes :

    • CONTAINER_NAME : nom que vous avez utilisé pour votre conteneur. Exemple : my-omni-1.
    • STANZA_NAME : nom de la strophe que vous avez créée. Exemple : my-stanza.

    Restaurer votre sauvegarde

    Docker

    docker exec -u postgres CONTAINER_NAME pgbackrest \
    --config-path=/var/lib/postgresql/backups \
    --stanza=STANZA_NAME \
    restore
    

    Docker

    docker exec -u postgres CONTAINER_NAME pgbackrest \
    --config-path=/var/lib/postgresql/backups \
    --stanza=STANZA_NAME \
    restore
    

    Podman

    podman exec -u postgres CONTAINER_NAME pgbackrest \
    --config-path=/var/lib/postgresql/backups \
    --stanza=STANZA_NAME \
    restore
    

    Podman

    podman exec -u postgres CONTAINER_NAME pgbackrest \
    --config-path=/var/lib/postgresql/backups \
    --stanza=STANZA_NAME \
    restore
    

    Remplacez les variables suivantes :

    * CONTAINER_NAME : nom que vous avez utilisé pour votre conteneur. Exemple : my-omni-1. * STANZA_NAME : nom de la strophe que vous avez créée. Exemple : my-stanza.

    Supprimer le conteneur AlloyDB Omni inactif

    Docker

    docker kill CONTAINER_NAME
    docker rm CONTAINER_NAME

    Docker

    docker kill CONTAINER_NAME
    docker rm CONTAINER_NAME

    Podman

    podman kill CONTAINER_NAME
    podman rm CONTAINER_NAME

    Podman

    podman kill CONTAINER_NAME
    podman rm CONTAINER_NAME

    Remplacez la variable suivante :

    • CONTAINER_NAME : nom que vous avez utilisé pour votre conteneur. Exemple : my-omni-1.

    Créer un conteneur AlloyDB Omni

    Docker

    docker run -d --name CONTAINER_NAME \
    -v DATA_DIR:/var/lib/postgresql/data \
    -v BACKUP_DIR:/var/lib/postgresql/backups \
    -p HOST_PORT:5432 \
    --restart=always \
    google/alloydbomni:latest
    

    Docker

    docker run -d --name CONTAINER_NAME \
    -v DATA_DIR:/var/lib/postgresql/data \
    -v BACKUP_DIR:/var/lib/postgresql/backups \
    -p HOST_PORT:5432 \
    --restart=always \
    google/alloydbomni:latest
    

    Podman

    podman run -d --name CONTAINER_NAME \
    -v DATA_DIR:/var/lib/postgresql/data \
    -v BACKUP_DIR:/var/lib/postgresql/backups \
    -p HOST_PORT:5432 \
    --restart=always \
    docker.io/google/alloydbomni:latest
    

    Podman

    podman run -d --name CONTAINER_NAME \
    -v DATA_DIR:/var/lib/postgresql/data \
    -v BACKUP_DIR:/var/lib/postgresql/backups \
    -p HOST_PORT:5432 \
    --restart=always \
    docker.io/google/alloydbomni:latest
    

    Remplacez les variables suivantes :

    • CONTAINER_NAME : nom que vous avez utilisé pour votre conteneur. Exemple : my-omni-1.
    • DATA_DIR: chemin d'accès au répertoire hôte dans lequel vos données sont stockées.
    • BACKUP_DIR: chemin d'accès au répertoire externe dans lequel vos sauvegardes sont stockées.
    • HOST_PORT: port TCP sur la machine hôte sur lequel le conteneur doit publier son propre port 5432. Pour utiliser également le port PostgreSQL par défaut sur la machine hôte, spécifiez 5432.

      Vérifier qu'AlloyDB Omni a démarré

      Docker

      docker logs -f CONTAINER_NAME
      

      Docker

      docker logs -f CONTAINER_NAME
      

      Podman

      podman logs -f CONTAINER_NAME
      

      Podman

      podman logs -f CONTAINER_NAME
      

      Remplacez la variable suivante :

      • CONTAINER_NAME : nom que vous avez utilisé pour votre conteneur. Exemple : my-omni-1.

      Autres options

      La commande restore pgBackRest est très flexible et propose un éventail d'options et de fonctionnalités que vous pouvez contrôler en transmettant différentes options de ligne de commande. Pour obtenir un guide complet sur la restauration, consultez la section Restauration.