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 el contenedor de 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.
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 Cómo crear copias de seguridad y restablecer 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 el disco suficiente en el sistema de archivos de destino para almacenar el clúster de la base de datos de AlloyDB Omni restaurado
La misma versión principal de AlloyDB Omni que se usa para el contenedor de restauración que 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 la 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
opg_dumpall
incluidas en PostgreSQL, para copiar tus bases de datos entre versiones.
Detén tu contenedor de AlloyDB Omni
Para simular que el clúster de bases 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 inactivo 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 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
: Es la ruta de acceso al directorio del host en la que se almacenan tus datos.BACKUP_DIR
: Es la ruta de acceso del directorio externo en el que se almacenan las copias de seguridad.HOST_PORT
: Es el puerto TCP en la máquina anfitrión al que el contenedor debe publicar su propio puerto5432
. Para usar el puerto predeterminado de PostgreSQL en la máquina anfitrión, especifica5432
.
Cómo quitar tu directorio de datos
Para borrar el clúster de bases 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 estrofa 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 estrofa que creaste. Por ejemplo,my-stanza
Quita 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
: Es la ruta de acceso al directorio del host en la que se almacenan tus datos.BACKUP_DIR
: Es la ruta de acceso del directorio externo en el que se almacenan las copias de seguridad.HOST_PORT
: Es el puerto TCP en la máquina anfitrión al que el contenedor debe publicar su propio puerto5432
. Para usar el puerto predeterminado de PostgreSQL en la máquina anfitrión, especifica5432
.
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, con un conjunto 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 Restablece.