1. Introduction
Cet atelier de programmation explique comment configurer pgBackRest pour sauvegarder et restaurer un déploiement AlloyDB Omni RPM à l'aide d'un stockage d'objets compatible avec S3.
Remarque : Dans cet atelier de programmation, vous allez déployer un binaire MinIO autonome sur la VM pour qu'il serve de point de terminaison de stockage local et léger compatible avec S3 à des fins de tutoriel et de test. Pour les charges de travail de production, utilisez toujours une solution de stockage compatible S3 ou un stockage d'objets cloud compatible et activement géré.
Prérequis
- Accès à un projet Google Cloud et à Cloud Shell depuis la console Cloud.
- Le SDK Google Cloud (
gcloud) est installé et configuré.
Points abordés
- Découvrez comment configurer une VM Compute Engine pour AlloyDB Omni RPM.
- Comment configurer un serveur de stockage d'objets local compatible avec S3 sur la VM.
- Comment configurer pgBackRest pour utiliser le stockage d'objets compatible S3 comme dépôt de sauvegarde.
- Comment effectuer, lister et vérifier les sauvegardes.
- Comment restaurer des données à partir d'une sauvegarde
Prérequis
- Obtenez un lien URL vers les RPM AlloyDB Omni. Les liens sont envoyés à votre adresse e-mail, qui inclut le serveur d'URL du dépôt. Initialisez la variable d'environnement suivante pour que l'URL soit prête à l'emploi pendant l'atelier de programmation.
export ALLOYDB_OMNI_REPOSITORY_URL="..." - Un terminal fonctionnel avec accès à Google Cloud. Vous pouvez utiliser Cloud Shell à cette fin.
2. Préparation
Configuration du projet
Créer un projet Google Cloud
- Dans la console Google Cloud, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.
- Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier si la facturation est activée sur un projet.
Démarrer Cloud Shell
Bien que vous puissiez utiliser Google Cloud à distance depuis votre ordinateur portable, vous allez utiliser Google Cloud Shell, un environnement de ligne de commande exécuté dans le cloud, lors de cet atelier de programmation.

- Ouvrez la console Google Cloud et cliquez sur l'icône Cloud Shell dans la barre d'outils en haut à droite.Vous pouvez également ouvrir Cloud Shell de l'une des manières suivantes :
- Si vous utilisez la console Google Cloud, appuyez sur G, puis sur S.
- Cliquez sur ce lien.
Le provisionnement et la connexion à l'environnement prennent généralement quelques instants. Une fois cette opération terminée, un résultat semblable à celui-ci s'affiche :
{: width="624"}
3. Créer la VM Compute Engine
Dans cette section, vous allez créer une seule machine virtuelle (VM) Compute Engine (GCE) à l'aide de l'outil de ligne de commande gcloud. Vous utilisez une image Rocky Linux 9, qui est entièrement compatible avec les RPM AlloyDB Omni.
- Définissez des variables d'environnement pour l'ID de votre projet, le nom de la VM, le type de machine, la zone et la région.
export PROJECT="your-project-id" export INSTANCE_NAME="alloydb-omni-pgbackrest" export MACHINE_TYPE="e2-standard-4" export ZONE="us-central1-c" export REGION="us-central1" - Connectez-vous avec votre compte utilisateur Google Cloud et configurez le projet par défaut.
gcloud auth login gcloud config set project $PROJECT - Créez une règle de pare-feu pour autoriser les connexions SSH à votre VM.
gcloud compute firewall-rules create allow-ssh-alloydb-omni \ --project=$PROJECT \ --direction=INGRESS \ --action=allow \ --rules=tcp:22 \ --source-ranges="0.0.0.0/0" - Étant donné que la VM est créée sans adresse IP publique, configurez un routeur Cloud Router et une passerelle Cloud NAT pour permettre à la VM d'accéder aux dépôts de packages externes et de télécharger les logiciels requis.
gcloud compute routers create alloydb-omni-router \ --project=$PROJECT \ --network=default \ --region=$REGION gcloud compute routers nats create alloydb-omni-nat \ --project=$PROJECT \ --router=alloydb-omni-router \ --region=$REGION \ --nat-all-subnet-ip-ranges \ --auto-allocate-nat-external-ips - Assurez-vous que votre réseau VPC dispose d'une route de passerelle Internet par défaut valide. Dans certains environnements partagés ou de bac à sable, les routes par défaut sont parfois supprimées par des scripts de nettoyage. Cette route est nécessaire pour que Cloud NAT transfère le trafic sortant vers Internet.
gcloud compute routes create default-internet-route \ --project=$PROJECT \ --network=default \ --destination-range=0.0.0.0/0 \ --next-hop-gateway=default-internet-gateway - Créez l'instance de VM Compute Engine avec Rocky Linux 9 et un disque persistant équilibré de 20 Go. Pour renforcer la sécurité, utilisez l'option
--no-addressafin qu'aucune adresse IP publique ne soit attribuée à la VM.gcloud compute instances create $INSTANCE_NAME \ --project=$PROJECT \ --zone=$ZONE \ --machine-type=$MACHINE_TYPE \ --image-family=rocky-linux-9 \ --image-project=rocky-linux-cloud \ --boot-disk-size=20GB \ --boot-disk-type=pd-balanced \ --no-address - Une fois la VM créée, vérifiez son état.
gcloud compute instances list --filter="name=$INSTANCE_NAME" --project=$PROJECT
4. Configurer le stockage d'objets compatible S3
Dans cette section, vous allez vous connecter à votre VM, préparer l'environnement et configurer un serveur de stockage d'objets compatible S3 local (minio) ainsi qu'un client S3 (mc) pour héberger votre bucket de sauvegarde.
- Connectez-vous à la VM via SSH à l'aide d'Identity-Aware Proxy (IAP). Comme la VM ne possède pas d'adresse IP publique,
gcloudtunnelise automatiquement la connexion SSH via IAP.gcloud compute ssh $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --tunnel-through-iap - Installez le package
policycoreutils-python-utilspour pouvoir configurer la règle SELinux ultérieurement, si nécessaire.sudo dnf install -y policycoreutils-python-utils - Téléchargez le binaire du serveur compatible S3 (
minio).curl -L -o minio \ https://github.com/minio/minio/releases/download/RELEASE.2024-05-10T01-41-38Z/minio.linux-amd64.RELEASE.2024-05-10T01-41-38Z chmod +x minio sudo mv minio /usr/local/bin/ - Créez un répertoire de données pour le serveur de stockage d'objets.
sudo mkdir -p /var/lib/s3-storage/data - Démarrez le serveur compatible S3 en arrière-plan avec des exemples d'identifiants. Notez que la clé secrète doit comporter au moins huit caractères.
export MINIO_ROOT_USER="s3admin" export MINIO_ROOT_PASSWORD="s3password" nohup sudo env MINIO_ROOT_USER="$MINIO_ROOT_USER" \ MINIO_ROOT_PASSWORD="$MINIO_ROOT_PASSWORD" \ /usr/local/bin/minio server /var/lib/s3-storage/data \ --console-address ":9001" \ > s3-server.log 2>&1 & - Vérifiez que le serveur compatible avec S3 est en cours d'exécution.
ps aux | grep minio - Téléchargez et installez le client S3 (
mc) pour gérer les buckets.curl -L -o mc \ https://github.com/minio/mc/releases/download/RELEASE.2024-05-09T17-04-24Z/mc.linux-amd64.RELEASE.2024-05-09T17-04-24Z chmod +x mc sudo mv mc /usr/local/bin/ - Configurez l'alias du client S3 (
s3repo) et créez un bucket nomméalloydb-backups.mc alias set s3repo http://localhost:9000 s3admin s3password mc mb s3repo/alloydb-backups
5. Installer AlloyDB Omni
Dans cette section, vous allez installer et configurer AlloyDB Omni.
- Définissez des variables d'environnement sur la VM pour le répertoire de données, l'URL de votre dépôt AlloyDB Omni et un mot de passe sécurisé pour l'utilisateur administrateur PostgreSQL
postgres. Remplacez l'URL par celle que vous avez reçue dans le formulaire d'inscription. Remarque : La transmission de mots de passe à l'aide de variables d'environnement sur la ligne de commande (par exemple,export PGDATA="/var/lib/alloydbomni" export ALLOYDB_OMNI_REPOSITORY_URL="..." export PGPASSWORD="YourStrongPassword123!"PGPASSWORD=$PGPASSWORD) est utilisée ici par souci de simplicité dans l'atelier de programmation, mais elle peut exposer le mot de passe dans les listes de processus. En production, utilisez des méthodes plus sécurisées, comme un fichier.pgpassou un gestionnaire de secrets. - Créez le répertoire de données dans lequel AlloyDB Omni stockera ses fichiers de base de données.
sudo mkdir -p $PGDATA - Configurez le dépôt YUM sur votre VM en créant le fichier de configuration du dépôt.
sudo tee /etc/yum.repos.d/alloydbomni.repo << EOF [alloydbomni] name=alloydbomni baseurl=$ALLOYDB_OMNI_REPOSITORY_URL enabled=1 repo_gpgcheck=0 gpgcheck=1 gpgkey=https://dl.google.com/linux/linux_signing_key.pub EOF - Mettez à jour le cache YUM.
sudo yum makecache - Installez la version 18 du package RPM AlloyDB Omni.
sudo dnf install -y alloydbomni18 - Initialisez l'instance de base de données AlloyDB Omni.
sudo PGPASSWORD=$PGPASSWORD PGDATA=$PGDATA /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb - Désactivez temporairement le mode d'application forcée de SELinux pour faciliter la configuration, conformément aux pratiques standards des ateliers de programmation.
sudo setenforce 0 - Préparez l'instance de base de données AlloyDB Omni.
sudo PGPASSWORD=$PGPASSWORD PGDATA=$PGDATA /usr/lib/postgresql/18/bin/alloydbomni18-setup preparedb - Activez et démarrez le service
systemdAlloyDB Omni.sudo systemctl enable alloydbomni18 sudo systemctl start alloydbomni18 - Vérifiez que le service AlloyDB Omni est actif et qu'il s'exécute correctement.
sudo systemctl status alloydbomni18
6. Configurer pgBackRest
Dans cette section, vous allez installer pgBackRest à partir du dépôt AlloyDB Omni Common, configurer /etc/pgbackrest/pgbackrest.conf pour utiliser votre bucket de stockage d'objets compatible avec S3 comme dépôt de sauvegarde et activer l'archivage WAL dans AlloyDB Omni.
- Définissez une variable d'environnement sur la VM pour l'URL de votre dépôt AlloyDB Omni Common. Remplacez l'URL par celle que vous avez reçue dans le formulaire d'inscription.
export ALLOYDB_OMNI_COMMON_REPOSITORY_URL="..." - Configurez le dépôt YUM pgBackRest et installez
pgbackrest-2.58.0.sudo tee /etc/yum.repos.d/pgbackrest.repo <<EOF [pgbackrest] name=Google Alloydb Omni Orchestrator baseurl=$ALLOYDB_OMNI_COMMON_REPOSITORY_URL enabled=1 repo_gpgcheck=0 gpgcheck=0 gpgkey=https://dl.google.com/linux/linux_signing_key.pub EOF sudo dnf install -y pgbackrest-2.58.0 - Créez les répertoires de spool et de journaux pour pgBackRest, puis attribuez-en la propriété à l'utilisateur
postgres.sudo mkdir -p /var/log/pgbackrest sudo mkdir -p /var/lib/pgbackrest sudo chown -R postgres:postgres /var/log/pgbackrest sudo chown -R postgres:postgres /var/lib/pgbackrest - Créez
/etc/pgbackrest/pgbackrest.confet configurez des autorisations strictes pour les fichiers.sudo mkdir -p /etc/pgbackrest/conf.d sudo tee /etc/pgbackrest/pgbackrest.conf <<EOF [global] spool-path=/var/lib/pgbackrest lock-path=/var/lib/pgbackrest # S3 Repository details repo1-type=s3 repo1-s3-endpoint=http://localhost:9000 repo1-s3-bucket=alloydb-backups repo1-s3-key=s3admin repo1-s3-key-secret=s3password repo1-s3-region=us-east-1 repo1-s3-uri-style=path repo1-path=/pgbackrest # Retention policy repo1-retention-full=3 repo1-retention-full-type=count repo1-retention-diff=16 # Force immediate checkpoint during backup start start-fast=y # Logging log-path=/var/log/pgbackrest log-level-console=info log-level-file=info # Compression compress-type=zst # Asynchronous WAL archiving archive-async=y archive-push-queue-max=1024MB archive-get-queue-max=256MB archive-missing-retry=y [global:archive-push] process-max=2 [global:archive-get] process-max=2 [omni] pg1-user=postgres pg1-socket-path=/tmp pg1-path=$PGDATA EOF sudo chown postgres:postgres /etc/pgbackrest/pgbackrest.conf sudo chmod 640 /etc/pgbackrest/pgbackrest.conf - Initialisez la strophe pgBackRest en tant qu'utilisateur
postgres. Vérifiez quesudo -u postgres pgbackrest --stanza=omni stanza-createstanza-create command end: completed successfullys'affiche dans le résultat. - Configurez les paramètres d'archivage AlloyDB Omni à l'aide de
psql.sudo -u postgres /usr/lib/postgresql/18/bin/psql \ -c "ALTER SYSTEM SET archive_mode = 'on';" \ -c "ALTER SYSTEM SET archive_command = 'pgbackrest --stanza=omni archive-push %p';" \ -c "ALTER SYSTEM SET wal_level = 'replica';" \ -c "ALTER SYSTEM SET max_wal_senders = 10;" - Redémarrez le service AlloyDB Omni pour appliquer les modifications apportées à l'archivage.
sudo systemctl restart alloydbomni18 - Vérifiez l'intégrité et la connectivité de la configuration pgBackRest.
Vérifiez quesudo -u postgres pgbackrest --stanza=omni checkcheck command end: completed successfullys'affiche dans le résultat.
7. Effectuer une sauvegarde
Dans cette section, vous allez utiliser pgBackRest pour effectuer une sauvegarde complète et une sauvegarde différentielle de votre base de données AlloyDB Omni dans un stockage d'objets compatible avec S3.
- Déclenchez une sauvegarde complète à l'aide de
pgbackrest.sudo -u postgres pgbackrest \ --stanza=omni \ --type=full backup - Déclenchez une sauvegarde différentielle à l'aide de
pgbackrest. Remarque : Les autres types de sauvegarde compatibles incluentsudo -u postgres pgbackrest \ --stanza=omni \ --type=diff backupincr(incrémentielle).
8. Lister et vérifier les sauvegardes
Dans cette section, vous allez lister les sauvegardes et vérifier qu'elles ont abouti.
- Répertoriez les sauvegardes à l'aide de la commande
pgbackrest info. Vérifiez que le résultat affichesudo -u postgres pgbackrest \ --stanza=omni infostatus: okainsi que les informations de sauvegarde pour chaque commande de sauvegarde que vous avez exécutée :- Sauvegarde complète :
full backup:(par exemple,F 20260908-093545F) - Sauvegarde différentielle :
diff backup:(par exemple,F_ D 20260908-093545F_20260908-094016D)
- Sauvegarde complète :
- Vérifiez les fichiers de sauvegarde stockés dans le bucket à l'aide du client S3 (
mc). Vous devriez voirmc ls s3repo/alloydb-backups/pgbackrest/backup,archiveetstanza.infodans le résultat.
9. Restaurer des données à partir d'une sauvegarde
Dans cette section, vous allez arrêter le service de base de données AlloyDB Omni et restaurer les données à partir d'une sauvegarde spécifique à l'aide de pgbackrest.
Attention : La restauration arrête votre base de données et écrase toutes ses données.
- Définissez une variable d'environnement pour l'ID de sauvegarde à partir de laquelle vous souhaitez effectuer la restauration. Remplacez la valeur par l'ID de sauvegarde indiqué dans le résultat
pgbackrest info.export BACKUPID="20260908-093545F" - Arrêtez le service AlloyDB Omni et vérifiez qu'il est inactif.
Vérifiez que le résultat affichesudo systemctl stop alloydbomni18 sudo systemctl status alloydbomni18Active: inactive. - Exécutez
pgbackrest restoreavec l'option--deltapour restaurer la base de données à partir de la sauvegarde sélectionnée. Vérifiez quesudo -u postgres pgbackrest \ --stanza=omni \ --set=$BACKUPID \ --delta restorerestore command end: completed successfullys'affiche dans le résultat. - Démarrez le service AlloyDB Omni et vérifiez qu'il est actif et en cours d'exécution.
Vérifiez que le résultat affichesudo systemctl start alloydbomni18 sudo systemctl status alloydbomni18Active: active (running).
10. Nettoyage et enquête
Une fois l'atelier de programmation terminé, vous pouvez nettoyer les ressources Google Cloud pour éviter que des frais inutiles ne vous soient facturés.
- Déconnectez-vous de votre session SSH sur la VM pour revenir à votre terminal Cloud Shell local.
exit - Supprimez l'instance de VM Compute Engine.
gcloud compute instances delete $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --quiet - Supprimez la règle de pare-feu créée pour l'accès SSH.
gcloud compute firewall-rules delete allow-ssh-alloydb-omni --project=$PROJECT --quiet - Supprimez la passerelle Cloud NAT et le routeur Cloud Router.
gcloud compute routers nats delete alloydb-omni-nat --router=alloydb-omni-router --region=$REGION --project=$PROJECT --quiet gcloud compute routers delete alloydb-omni-router --region=$REGION --project=$PROJECT --quiet - Supprimez la route personnalisée.
gcloud compute routes delete default-internet-route --project=$PROJECT --quiet
11. Félicitations
Félicitations, vous avez terminé cet atelier de programmation ! Vous avez configuré pgBackRest pour sauvegarder et restaurer un déploiement AlloyDB Omni RPM à l'aide d'un stockage d'objets compatible avec S3.
Points abordés
- Découvrez comment configurer une VM Compute Engine pour AlloyDB Omni RPM.
- Découvrez comment configurer un bucket de stockage d'objets compatible S3.
- Configurer pgBackRest avec un dépôt compatible S3
- Découvrez comment effectuer, lister et vérifier des sauvegardes complètes et différentielles.
- Comment restaurer des données à partir d'une sauvegarde à l'aide de pgBackRest
Pour en savoir plus, consultez la présentation d'AlloyDB Omni.