Restaurar un clúster de AlloyDB Omni con pgBackRest

Selecciona una versión de la documentación:

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

Como 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 muestra una selección de tareas de recuperación habituales, con ejemplos de comandos relevantes.

Para obtener más información sobre cómo configurar pgBackRest para que funcione con AlloyDB Omni, consulta el artículo Configurar pgBackRest para AlloyDB Omni.

Consulta Crear y restaurar copias de seguridad en Kubernetes para obtener información sobre Kubernetes.

Antes de empezar

Antes de configurar AlloyDB Omni para que funcione con pgBackrest, debes tener AlloyDB Omni instalado y en ejecución en un servidor que controles.

  • Un servidor de base de datos de destino que ejecute la misma versión principal de AlloyDB Omni que la copia de seguridad que quieras restaurar. Para obtener más información sobre cómo instalar AlloyDB Omni, consulta Instalar AlloyDB Omni.

  • Un repositorio de copias de seguridad de pgBackRest que contenga al menos una copia de seguridad de la base de datos de AlloyDB Omni de origen.

  • Suficiente espacio libre en el disco del servidor de destino para alojar la base de datos restaurada.

Información general

Para realizar una restauración de AlloyDB Omni con pgBackRest, ejecuta el comando pgbackrest restore. Los parámetros que proporciones al comando variarán en función de tu situación.

Por lo general, se ejecuta el comando pgbackrest restore con marcas que proporcionan la siguiente información:

  • La ubicación de tu archivo pgbackrest.conf.
  • El nombre del repositorio de copias de seguridad de pgBackRest al que quieres restaurar. Estos repositorios se denominan y definen en el archivo pgbackrest.conf.
  • Ubicación del sistema de archivos local en la que se escribirán los datos restaurados.
  • Identificador de la copia de seguridad o del momento concreto a partir del cual quieres restaurar los datos.

Cuando ejecutes los comandos de pgbackrest restore en contenedores, recuerda usar las rutas del sistema de archivos desde el punto de vista del contenedor. Por ejemplo, la ruta al directorio de datos de AlloyDB Omni siempre es /var/lib/postgresql/data, independientemente de su ubicación en el servidor host. Para obtener más información, consulta Nota sobre las rutas del sistema de archivos.

Realizar una restauración a un momento dado

En este ejemplo se restauran datos de un repositorio de pgBackRest y se indica un momento concreto al que restaurar. Si ha definido varios repositorios en el archivo pgbackrest.conf del entorno de destino, pgBackRest elegirá el repositorio desde el que restaurar en función de la disponibilidad, la velocidad esperada y otros factores.

En el ejemplo se da por supuesto lo siguiente:

  • Tienes un archivo pgbackrest.conf situado en el nivel superior del directorio de datos de AlloyDB Omni de destino. De esta forma, el archivo estará disponible para el pgbackrest en contenedores como /var/lib/postgresql/data.

  • Has habilitado las copias de seguridad continuas con tu configuración de pgBackRest.

  1. En el entorno de destino, realiza una restauración PITR y especifica una marca de tiempo para la restauración:

    Docker

    docker exec CONTAINER_NAME pgbackrest \
      --config-path=/var/lib/postgresql/data \
      --stanza=STANZA \
      --type=time \
      --pg1-path=/var/lib/postgresql/data/data-RESTORED \
      --target="TIMESTAMP" \
      restore

    Haz los cambios siguientes:

    • CONTAINER_NAME: el nombre que asignaste al contenedor de AlloyDB Omni al instalarlo. Por ejemplo, my-omni.

    • STANZA: la estrofa de configuración, definida por el archivo pgbackrest.conf, que se aplicará a esta restauración. Por ejemplo, omni.

    • TIMESTAMP: la hora a la que se restaurará (por ejemplo, 2024-02-22 19:50:00).

    Podman

    podman exec CONTAINER_NAME pgbackrest \
      --config-path=/var/lib/postgresql/data \
      --stanza=STANZA \
      --type=time \
      --pg1-path=/var/lib/postgresql/data/data-RESTORED \
      --target="TIMESTAMP" \
      restore

    Haz los cambios siguientes:

    • CONTAINER_NAME: el nombre que asignaste al contenedor de AlloyDB Omni al instalarlo. Por ejemplo, my-omni.

    • STANZA: la estrofa de configuración, definida por el archivo pgbackrest.conf, que se aplicará a esta restauración. Por ejemplo, omni.

    • TIMESTAMP: la hora a la que se restaurará (por ejemplo, 2024-02-22 19:50:00).

  2. En el entorno de destino, detén el contenedor con el siguiente comando:

    Docker

    docker container stop CONTAINER_NAME

    Podman

    podman container stop CONTAINER_NAME
  3. Cambia el nombre del subdirectorio data de tu directorio de datos como medida de seguridad:

    cd DATA_DIR
    sudo mv data data-OLD

    Sustituye DATA_DIR por la ruta del sistema de archivos al directorio de datos de AlloyDB Omni.

  4. Mueve los datos restaurados a su ubicación y limpia postgresql.auto.conf:

    sudo mv data-RESTORED data
    sudo sed -i 's|data-RESTORED|data|' data/postgresql.auto.conf
  5. Inicia el contenedor de AlloyDB Omni con el servidor de la base de datos:

    Docker

    docker container start CONTAINER_NAME

    Podman

    podman container start CONTAINER_NAME

Ahora puede conectarse a su base de datos mediante psql y confirmar que los datos se han restaurado correctamente. Si es así, puedes eliminar la data-OLDcopia del subdirectorio data que has creado antes.

Para obtener más información sobre la recuperación a un momento dado en pgBackRest, consulta Point-in-Time Recovery (Recuperación a un momento dado). Para obtener más información sobre cómo preparar un archivo pgbackrest.conf para usarlo con AlloyDB Omni, consulta Configurar pgBackRest para AlloyDB Omni.

Otras opciones

El comando pgbackrest restore es muy flexible y ofrece una serie de opciones y funciones que puedes controlar mediante diferentes opciones de línea de comandos. Entre ellas, se incluyen las siguientes:

  • Limitar la restauración solo a los archivos modificados.
  • Restaurar solo las bases de datos seleccionadas.

Para obtener una guía completa sobre cómo realizar restauraciones en pgBackRest, consulta Restaurar.