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 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 fonctionner avec AlloyDB Omni, consultez Configurer pgBackRest pour AlloyDB Omni.

Pour en savoir plus sur Kubernetes, consultez la section Sauvegarder et restaurer dans Kubernetes.

Avant de commencer

Avant de restaurer un cluster AlloyDB Omni, vérifiez les points suivants:

  • Configurez pgBackRest pour votre instance AlloyDB Omni.

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

  • Même version majeure d'AlloyDB Omni utilisée pour le conteneur de restauration que le conteneur source d'origine.

    Pour vérifier la 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 la 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 utilise une version différente de PostgreSQL, de pgBackRest ou des deux, vous devez créer un conteneur cible avec une version correspondante. Si ce 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. Pour en savoir plus, consultez la section Exporter un fichier DMP.

Arrêter votre conteneur AlloyDB Omni

Pour simuler l'indisponibilité de votre cluster de base 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 auquel le conteneur doit publier son propre port 5432. Pour utiliser également le port par défaut PostgreSQL sur la machine hôte, spécifiez 5432.

Supprimer votre répertoire de données

Pour effacer votre cluster de base 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 auquel le conteneur doit publier son propre port 5432. Pour utiliser également le port par défaut PostgreSQL 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 de pgBackRest 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. Pour obtenir un guide complet sur l'exécution de restaurations, consultez la section Restaurer.