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
opg_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 datosBACKUP_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 puerto5432
. Para usar el puerto predeterminado de PostgreSQL en la máquina anfitrión, especifica5432
.
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 datosBACKUP_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 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 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.