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
oupg_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 port5432
. Pour utiliser également le port par défaut PostgreSQL sur la machine hôte, spécifiez5432
.
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 port5432
. Pour utiliser également le port par défaut PostgreSQL sur la machine hôte, spécifiez5432
.
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.