1. Introducción
En este codelab, se muestra cómo configurar pgBackRest para crear copias de seguridad y restablecer una implementación de RPM de AlloyDB Omni con almacenamiento de objetos compatible con S3.
Nota: En este codelab, implementarás un archivo binario de MinIO independiente en la VM para que actúe como un endpoint de almacenamiento local y ligero compatible con S3 para fines de pruebas y del instructivo. Para las cargas de trabajo de producción, usa siempre una solución de almacenamiento compatible con S3 o almacenamiento de objetos en la nube que se mantenga de forma activa.
Requisitos previos
- Acceso a un proyecto de Google Cloud y a Cloud Shell desde Cloud Console
- El SDK de Google Cloud (
gcloud) instalado y configurado.
Qué aprenderás
- Cómo configurar una VM de Compute Engine para el RPM de AlloyDB Omni
- Cómo configurar un servidor de almacenamiento de objetos local compatible con S3 en la VM
- Cómo configurar pgBackRest para usar el almacenamiento de objetos compatible con S3 como repositorio de copias de seguridad
- Cómo realizar, enumerar y verificar copias de seguridad
- Cómo restablecer datos desde una copia de seguridad
Requisitos
- Obtén un vínculo de URL a los RPM de AlloyDB Omni. Los vínculos se envían a tu correo electrónico, que incluye el servidor de URL del repositorio. Inicializa la siguiente variable de entorno para tener la URL lista para usar durante el codelab.
export ALLOYDB_OMNI_REPOSITORY_URL="..." - Una terminal en funcionamiento con acceso a Google Cloud Puedes usar Cloud Shell para este propósito.
2. Configuración y requisitos
Configuración del proyecto
Crea un proyecto de Google Cloud
- En la consola de Google Cloud, en la página del selector de proyectos, selecciona o crea un proyecto de Google Cloud.
- Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Obtén información para verificar si la facturación está habilitada en un proyecto.
Inicia Cloud Shell
Si bien puedes operar Google Cloud de forma remota desde tu laptop, en este codelab usarás Google Cloud Shell, un entorno de línea de comandos que se ejecuta en la nube.

- Abre la consola de Google Cloud y haz clic en el ícono de Cloud Shell en la barra de herramientas de la parte superior derecha.También puedes abrir Cloud Shell de una de las siguientes maneras:
- Si usas la consola de Google Cloud, presiona G y, luego, S.
- Haz clic en este vínculo.
Por lo general, el aprovisionamiento y la conexión al entorno demoran unos minutos. Cuando se complete esta operación, verás algo similar a lo siguiente:
{: width="624"}
3. Crea la VM de Compute Engine
En esta sección, crearás una sola máquina virtual (VM) de Compute Engine (GCE) con la herramienta de línea de comandos gcloud. Usas una imagen de Rocky Linux 9, que es totalmente compatible con los RPM de AlloyDB Omni.
- Define variables de entorno para el ID del proyecto, el nombre de la VM, el tipo de máquina, la zona y la región.
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" - Accede con tu usuario de la cuenta de Google Cloud y configura el proyecto predeterminado.
gcloud auth login gcloud config set project $PROJECT - Crea una regla de firewall para permitir conexiones SSH a tu 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" - Dado que la VM se crea sin una dirección IP pública, configura un Cloud Router y una puerta de enlace de Cloud NAT para permitir que la VM acceda a repositorios de paquetes externos y descargue el software requerido.
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 - Asegúrate de que tu red de VPC tenga una ruta de puerta de enlace de Internet predeterminada válida. En algunos entornos compartidos o de prueba, las rutas predeterminadas se quitan ocasionalmente con secuencias de comandos de limpieza. Esta ruta es necesaria para que Cloud NAT reenvíe el tráfico saliente a 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 - Crea la instancia de VM de Compute Engine con Rocky Linux 9 y un disco persistente balanceado de 20 GB. Para mejorar la seguridad, usa la marca
--no-addresspara que no se le asigne una dirección IP pública a 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 - Después de crear la VM, verifica su estado.
gcloud compute instances list --filter="name=$INSTANCE_NAME" --project=$PROJECT
4. Configura el almacenamiento de objetos compatible con S3
En esta sección, te conectarás a tu VM, prepararás el entorno y configurarás un servidor de almacenamiento de objetos local compatible con S3 (minio) junto con un cliente de S3 (mc) para alojar tu bucket de copias de seguridad.
- Conéctate a la VM a través de SSH con Identity-Aware Proxy (IAP). Como la VM no tiene una dirección IP pública,
gcloudcreará automáticamente un túnel para la conexión SSH a través de IAP.gcloud compute ssh $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --tunnel-through-iap - Instala el paquete
policycoreutils-python-utilspara que la política de SELinux se pueda configurar más adelante si es necesario.sudo dnf install -y policycoreutils-python-utils - Descarga el objeto binario del servidor compatible con 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/ - Crea un directorio de datos para el servidor de almacenamiento de objetos.
sudo mkdir -p /var/lib/s3-storage/data - Inicia el servidor compatible con S3 en segundo plano con credenciales de ejemplo. Ten en cuenta que la clave secreta debe tener al menos 8 caracteres.
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 & - Verifica que el servidor compatible con S3 esté en ejecución.
ps aux | grep minio - Descarga e instala el cliente de S3 (
mc) para administrar 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/ - Configura el alias del cliente de S3 (
s3repo) y crea un bucket llamadoalloydb-backups.mc alias set s3repo http://localhost:9000 s3admin s3password mc mb s3repo/alloydb-backups
5. Instalar AlloyDB Omni
En esta sección, instalarás y configurarás AlloyDB Omni.
- Define variables de entorno en la VM para el directorio de datos, la URL de tu repositorio de AlloyDB Omni y una contraseña segura para el usuario administrador de PostgreSQL
postgres. Reemplaza la URL por la que recibiste en el formulario de registro. Nota: Aquí se pasan contraseñas con variables de entorno en la línea de comandos (p.ej.,export PGDATA="/var/lib/alloydbomni" export ALLOYDB_OMNI_REPOSITORY_URL="..." export PGPASSWORD="YourStrongPassword123!"PGPASSWORD=$PGPASSWORD) para simplificar el codelab, pero esto puede exponer la contraseña en las listas de procesos. En producción, usa métodos más seguros, como un archivo.pgpasso un administrador de secretos. - Crea el directorio de datos en el que AlloyDB Omni almacenará sus archivos de base de datos.
sudo mkdir -p $PGDATA - Crea el archivo de configuración del repositorio para configurar el repositorio de YUM en tu VM.
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 - Actualiza la caché de YUM.
sudo yum makecache - Instala la versión 18 del paquete RPM de AlloyDB Omni.
sudo dnf install -y alloydbomni18 - Inicializa la instancia de la base de datos de AlloyDB Omni.
sudo PGPASSWORD=$PGPASSWORD PGDATA=$PGDATA /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb - Inhabilita temporalmente el modo de aplicación forzosa de SELinux para facilitar la configuración, según las prácticas estándar de los codelabs.
sudo setenforce 0 - Prepara la instancia de la base de datos de AlloyDB Omni.
sudo PGPASSWORD=$PGPASSWORD PGDATA=$PGDATA /usr/lib/postgresql/18/bin/alloydbomni18-setup preparedb - Habilita e inicia el servicio
systemdde AlloyDB Omni.sudo systemctl enable alloydbomni18 sudo systemctl start alloydbomni18 - Verifica que el servicio de AlloyDB Omni esté activo y se ejecute correctamente.
sudo systemctl status alloydbomni18
6. Configura pgBackRest
En esta sección, instalarás pgBackRest desde el repositorio común de AlloyDB Omni, configurarás /etc/pgbackrest/pgbackrest.conf para que use tu bucket de almacenamiento de objetos compatible con S3 como repositorio de copias de seguridad y habilitarás el archivado de WAL en AlloyDB Omni.
- Define una variable de entorno en la VM para la URL de tu repositorio común de AlloyDB Omni. Reemplaza la URL por la que recibiste en el formulario de registro.
export ALLOYDB_OMNI_COMMON_REPOSITORY_URL="..." - Configura el repositorio de YUM de pgBackRest y, luego, instala
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 - Crea los directorios de registro y de cola de pgBackRest, y asigna la propiedad al usuario
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 - Crea
/etc/pgbackrest/pgbackrest.confy configura permisos de archivo estrictos.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 - Inicializa la sección de pgBackRest como el usuario
postgres. Confirma quesudo -u postgres pgbackrest --stanza=omni stanza-createstanza-create command end: completed successfullyse muestre en el resultado. - Configura los parámetros de archivado de AlloyDB Omni con
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;" - Reinicia el servicio de AlloyDB Omni para aplicar los cambios de archivado.
sudo systemctl restart alloydbomni18 - Verifica la integridad y la conectividad de la configuración de pgBackRest.
Confirma quesudo -u postgres pgbackrest --stanza=omni checkcheck command end: completed successfullyse muestre en el resultado.
7. Realizar copia de seguridad
En esta sección, usarás pgBackRest para realizar una copia de seguridad completa y una copia de seguridad diferencial de tu base de datos de AlloyDB Omni en un almacenamiento de objetos compatible con S3.
- Activa una copia de seguridad completa con
pgbackrest.sudo -u postgres pgbackrest \ --stanza=omni \ --type=full backup - Activa una copia de seguridad diferencial con
pgbackrest. Nota: Otros tipos de copias de seguridad admitidos incluyensudo -u postgres pgbackrest \ --stanza=omni \ --type=diff backupincr(incremental).
8. Cómo verificar y mostrar una lista de las copias de seguridad
En esta sección, enumerarás las copias de seguridad y verificarás que se hayan completado correctamente.
- Enumera las copias de seguridad con el comando
pgbackrest info. Confirma que el resultado muestresudo -u postgres pgbackrest \ --stanza=omni infostatus: okjunto con la información de la copia de seguridad para cada comando de copia de seguridad que ejecutaste:- Copia de seguridad completa:
full backup:(por ejemplo,F 20260908-093545F) - Copia de seguridad de diferencias:
diff backup:(por ejemplo,F_ D 20260908-093545F_20260908-094016D)
- Copia de seguridad completa:
- Verifica los archivos de copia de seguridad almacenados en el bucket con el cliente de S3 (
mc). Deberías vermc ls s3repo/alloydb-backups/pgbackrest/backup,archiveystanza.infoen el resultado.
9. Restablece los datos desde la copia de seguridad
En esta sección, detendrás el servicio de base de datos de AlloyDB Omni y restablecerás los datos de una copia de seguridad específica con pgbackrest.
Precaución: Si restableces la base de datos, se detendrá y se reemplazarán todos sus datos.
- Define una variable de entorno para el ID de la copia de seguridad desde la que deseas restablecer. Reemplaza el valor por el ID de copia de seguridad que se muestra en el resultado de
pgbackrest info.export BACKUPID="20260908-093545F" - Detén el servicio de AlloyDB Omni y verifica que esté inactivo.
Confirma que el resultado muestresudo systemctl stop alloydbomni18 sudo systemctl status alloydbomni18Active: inactive. - Ejecuta
pgbackrest restorecon la opción--deltapara restablecer la base de datos a partir de la copia de seguridad seleccionada. Confirma quesudo -u postgres pgbackrest \ --stanza=omni \ --set=$BACKUPID \ --delta restorerestore command end: completed successfullyse muestre en el resultado. - Inicia el servicio de AlloyDB Omni y verifica que esté activo y en ejecución.
Confirma que el resultado muestresudo systemctl start alloydbomni18 sudo systemctl status alloydbomni18Active: active (running).
10. Limpieza y encuesta
Una vez que termines el codelab, puedes limpiar los recursos de Google Cloud para evitar que se generen cargos no deseados.
- Desconéctate de tu sesión de SSH en la VM para regresar a la terminal local de Cloud Shell.
exit - Borra la instancia de VM de Compute Engine.
gcloud compute instances delete $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --quiet - Borra la regla de firewall creada para el acceso SSH.
gcloud compute firewall-rules delete allow-ssh-alloydb-omni --project=$PROJECT --quiet - Borra la puerta de enlace de Cloud NAT y 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 - Borra la ruta personalizada.
gcloud compute routes delete default-internet-route --project=$PROJECT --quiet
11. Felicitaciones
¡Felicitaciones por completar el codelab! Configuraste correctamente pgBackRest para crear copias de seguridad y restablecer una implementación de RPM de AlloyDB Omni con almacenamiento de objetos compatible con S3.
Temas abordados
- Cómo configurar una VM de Compute Engine para el RPM de AlloyDB Omni
- Cómo configurar un bucket de almacenamiento de objetos compatible con S3
- Cómo configurar pgBackRest con un repositorio compatible con S3
- Cómo realizar, enumerar y verificar copias de seguridad completas y diferenciales
- Cómo restablecer datos desde una copia de seguridad con pgBackRest
Para obtener más información, consulta la descripción general de AlloyDB Omni.