Cómo restablecer un clúster de AlloyDB Omni con pgBackRest

Selecciona una versión de la documentación:

En esta página, se muestra cómo restablecer un clúster de AlloyDB Omni con una copia de seguridad creada con pgBackRest, la solución de copia de seguridad de código abierto incluida en el contenedor de AlloyDB Omni.

Dado que AlloyDB Omni es compatible con PostgreSQL, los comandos y las técnicas de restauración de datos que se describen en el manual de pgBackRest también se aplican a AlloyDB Omni. En esta página, se muestran ejemplos de comandos relevantes para una selección de tareas de recuperación comunes.

Si deseas obtener más información para configurar pgBackRest para que funcione con AlloyDB Omni, consulta Cómo configurar pgBackRest para AlloyDB Omni.

Para obtener información sobre Kubernetes, consulta Crea copias de seguridad y restablece datos en Kubernetes.

Antes de comenzar

Antes de restablecer un clúster de AlloyDB Omni, asegúrate de tener lo siguiente:

  • Configura pgBackRest para tu instancia de AlloyDB Omni.

  • Espacio en disco suficiente en el sistema de archivos de destino para almacenar el clúster de base de datos de AlloyDB Omni restaurado

  • La misma versión principal de AlloyDB Omni que se usó para el contenedor de restauración que para el contenedor de origen original

    Para verificar tu versión de PostgreSQL, ejecuta el siguiente comando:

    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();"
    

    Reemplaza la siguiente variable:

    • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1.

    Para verificar tu versión de pgBackRest, ejecuta el siguiente comando:

    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
    

    Reemplaza la siguiente variable:

    • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1.

    Si tu contenedor de destino tiene una versión diferente de PostgreSQL, pgBackRest o ambos, debes crear un contenedor de destino nuevo con una versión coincidente. Si esto no es posible, debes usar un método alternativo, como las utilidades pg_dump o pg_dumpall incluidas en PostgreSQL, para copiar tus bases de datos entre versiones.

Detén tu contenedor de AlloyDB Omni

Para simular que tu clúster de base de datos de AlloyDB Omni no está disponible, detén el contenedor.

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

Reemplaza la siguiente variable:

  • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1.

Crea un contenedor de AlloyDB Omni inactivo

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

Reemplaza las siguientes variables:

  • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1.
  • DATA_DIR: Ruta de acceso al directorio del host en el que se almacenan tus datos
  • BACKUP_DIR: Es la ruta de acceso al directorio externo en el que se almacenan tus copias de seguridad.
  • HOST_PORT: Es el puerto TCP en la máquina anfitrión al que el contenedor debe publicar su propio puerto 5432. Para usar el puerto predeterminado de PostgreSQL en la máquina anfitrión, especifica 5432.

Cómo quitar tu directorio de datos

Para borrar tu clúster de base de datos de AlloyDB Omni, quita el directorio de datos.

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/*"

Reemplaza la siguiente variable:

  • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1.

Valida que tus copias de seguridad sean 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

Reemplaza las siguientes variables:

  • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1.
  • STANZA_NAME: Es el nombre de la sección que creaste. Por ejemplo, my-stanza

Restablece la copia de seguridad

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

Reemplaza las siguientes variables:

  • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1.
  • STANZA_NAME: Es el nombre de la sección que creaste. Por ejemplo, my-stanza

Cómo quitar el contenedor inactivo de AlloyDB Omni

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

Reemplaza la siguiente variable:

  • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1.

Crea un contenedor de 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

Reemplaza las siguientes variables:

  • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1.
  • DATA_DIR: Ruta de acceso al directorio del host en el que se almacenan tus datos
  • BACKUP_DIR: Es la ruta de acceso al directorio externo en el que se almacenan tus copias de seguridad.
  • HOST_PORT: Es el puerto TCP en la máquina anfitrión al que el contenedor debe publicar su propio puerto 5432. Para usar el puerto predeterminado de PostgreSQL en la máquina anfitrión, especifica 5432.

Valida que se haya iniciado AlloyDB Omni

Docker

docker logs -f CONTAINER_NAME

Docker

docker logs -f CONTAINER_NAME

Podman

podman logs -f CONTAINER_NAME

Podman

podman logs -f CONTAINER_NAME

Reemplaza la siguiente variable:

  • CONTAINER_NAME: Es el nombre que usaste para tu contenedor. Por ejemplo, my-omni-1.

Otras opciones

El comando restore de pgBackRest es muy flexible y cuenta con una variedad de opciones y funciones que puedes controlar pasando diferentes opciones de línea de comandos. Para obtener una guía completa sobre cómo realizar restablecimientos, consulta Restablecimiento.