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 con AlloyDB Omni.

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

Los clústeres habilitados para TDE también admiten copias de seguridad y restablecimientos con pgBackRest. Para obtener más información, consulta Crea un clúster habilitado para TDE.

Para obtener más información sobre cómo configurar pgBackRest para que funcione con AlloyDB Omni, consulta Configura pgBackRest para AlloyDB Omni.

Para obtener información basada en Kubernetes, consulta Realiza copias de seguridad y restablece en Kubernetes.

Antes de comenzar

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

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

  • La misma versión principal de AlloyDB Omni que se usa para la instancia de base de datos de restablecimiento que la instancia de base de datos 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: 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: 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 en diferentes 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: 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: Nombre que usaste para tu contenedor. Por ejemplo, my-omni-1.
    • DATA_DIR: Ruta de acceso al directorio host en el que se almacenan tus datos.
    • BACKUP_DIR: Ruta de acceso al directorio externo en el que se almacenan tus copias de seguridad.
    • HOST_PORT: 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.

    Quita 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: 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: Nombre que usaste para tu contenedor. Por ejemplo, my-omni-1.
    • STANZA_NAME: Nombre de la stanza 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: Nombre que usaste para tu contenedor. Por ejemplo, my-omni-1. * STANZA_NAME: Nombre de la stanza que creaste. Por ejemplo, my-stanza.

    Quita el contenedor de AlloyDB Omni inactivo

    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: 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: Nombre que usaste para tu contenedor. Por ejemplo, my-omni-1.
    • DATA_DIR: Ruta de acceso al directorio host en el que se almacenan tus datos.
    • BACKUP_DIR: Ruta de acceso al directorio externo en el que se almacenan tus copias de seguridad.
    • HOST_PORT: 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: Nombre que usaste para tu contenedor. Por ejemplo, my-omni-1.

      Otras opciones

      El comando restore de pgBackRest es muy flexible, con un array de opciones y funciones que puedes controlar pasando diferentes opciones de línea de comandos. Para obtener una guía completa para realizar restablecimientos, consulta Restablecer.