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 Docker 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.

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

Antes de comenzar

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 el servidor de base de datos fuente Para obtener más información sobre la instalación de AlloyDB Omni, consulta Instala AlloyDB Omni.

    El servidor de destino puede ser la misma máquina que el servidor de origen.

  • 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.

  • Espacio libre suficiente en el disco del servidor de destino para contener la base de datos restablecida

Descripción general

Para realizar un restablecimiento de AlloyDB Omni con pgBackRest, ejecuta el comando pgbackrest restore. Los argumentos que proporcionas al comando varían según tu situación.

En general, ejecutas el comando pgbackrest restore con marcas que proporcionan la siguiente información:

  • Ubicación de tu archivo pgbackrest.conf
  • Nombre del repositorio de copias de seguridad de pgBackRest desde el que deseas restablecer la base de datos. Estos repositorios se nombran y definen en el archivo pgbackest.conf.
  • Ubicación en el sistema de archivos local en la que se escribirán los datos restablecidos.
  • Es un identificador de la copia de seguridad o el momento determinado específicos desde los que deseas realizar el restablecimiento.

Cuando ejecutes los comandos pgbackrest restore en contenedores, recuerda usar las rutas de acceso del sistema de archivos desde el punto de vista del contenedor. Por ejemplo, la ruta de acceso a tu directorio de datos de AlloyDB Omni siempre es /mnt/disks/pgsql, sin importar su ubicación en el servidor host. Para obtener más información, consulta Una nota sobre las rutas de acceso del sistema de archivos.

Realiza un restablecimiento a un momento determinado

En este ejemplo, se restablecen datos de un repositorio de pgBackRest y se nombra un momento determinado específico desde el cual se restablecerán los datos. Si definiste varios repositorios en el archivo pgbackrest.conf del entorno de destino, pgBackRest elegirá el repositorio desde el que se realizará la restauración según la disponibilidad, la velocidad esperada y otros factores.

En el ejemplo, se supone lo siguiente:

  • Tienes un archivo pgbackrest.conf ubicado en el nivel superior de tu directorio de datos de AlloyDB Omni de destino. Esto hace que el archivo esté disponible para el pgbackrest en contenedores como /mnt/disks/pgsql/pgbackrest.conf.

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

  1. En el entorno de destino, realiza un restablecimiento de PITR y especifica una marca de tiempo desde la que se realizará el restablecimiento:

    sudo docker exec pg-service pgbackrest \
      --config-path=/mnt/disks/pgsql \
      --stanza=STANZA \
      --type=time \
      --pg1-path=/mnt/disks/pgsql/data-RESTORED \
      --target="TIMESTAMP" \
      restore

    Reemplaza lo siguiente:

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

    • TIMESTAMP: Es la fecha y hora desde la que se realizará la restauración, por ejemplo, 2024-02-22 19:50:00.

  2. En el entorno de destino, detén el servidor de la base de datos:

    sudo alloydb database-server stop
  3. Cambia el nombre del subdirectorio data de tu directorio de datos como medida de seguridad:

    cd DATA_DIR
    sudo mv data data-OLD

    Reemplaza DATA_DIR por la ruta de acceso del sistema de archivos a tu directorio de datos de AlloyDB Omni.

  4. Mueve los datos restablecidos a su lugar y limpia postgresql.auto.conf:

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

    sudo alloydb database-server start

Ahora puedes conectarte a tu base de datos con psql y confirmar que los datos se restablecieron según lo previsto. Si es así, puedes borrar la copia data-OLD del subdirectorio data que creaste antes.

Para obtener más información sobre la PITR en pgBackRest, consulta Recuperación de un momento determinado. Para obtener más información sobre cómo preparar un archivo pgbackrest.conf para usarlo con AlloyDB Omni, consulta Configura pgBackRest para AlloyDB Omni.

Otras opciones

El comando pgbackrest restore es muy flexible y cuenta con una variedad de opciones y funciones que puedes controlar pasando diferentes opciones de línea de comandos. Se incluyen las siguientes:

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

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