Configurar Barman para AlloyDB Omni

Selecciona una versión de la documentación:

En esta página se explica cómo proteger tus datos configurando AlloyDB Omni para que funcione con Barman, un servidor de copias de seguridad de bases de datos de código abierto.

Puedes proteger tus datos de AlloyDB Omni con cualquier tecnología de copia de seguridad de bases de datos que funcione con PostgreSQL. Por ejemplo, puedes configurar AlloyDB Omni para permitir conexiones desde un servidor Barman que controles. De esta forma, el servidor Barman puede realizar copias de seguridad continuas de los datos almacenados en tu servidor AlloyDB Omni.

Una vez que hayas configurado los servidores de Barman y AlloyDB Omni para que funcionen conjuntamente, podrás ejecutar comandos de Barman para llevar a cabo diversas tareas de protección de datos y recuperación ante desastres, como las siguientes:

  • Crea una copia de seguridad de tus datos bajo demanda.
  • Configura la transmisión WAL síncrona de los cambios de datos a tu servidor de copia de seguridad.
  • Restaurar a partir de una copia de seguridad específica.
  • Realiza una restauración a un momento dado.

Para obtener más información sobre el funcionamiento de Barman, consulta el manual de Barman.

Antes de empezar

Antes de configurar AlloyDB Omni para que funcione con Barman, necesitas lo siguiente:

Configurar AlloyDB Omni para que funcione con Barman

Para preparar tu servidor AlloyDB Omni para que funcione con Barman, ejecuta los siguientes comandos en el servidor en el que hayas instalado AlloyDB Omni.

  1. Crea el usuario de la base de datos barman con los privilegios adecuados:

    Docker

    docker exec CONTAINER_NAME psql -h localhost -U postgres -c "
    CREATE USER barman;
    GRANT EXECUTE ON FUNCTION pg_backup_start(text, boolean) to barman;
    GRANT EXECUTE ON FUNCTION pg_backup_stop(boolean) to barman;
    GRANT EXECUTE ON FUNCTION pg_switch_wal() to barman;
    GRANT EXECUTE ON FUNCTION pg_create_restore_point(text) to barman;
    GRANT pg_read_all_settings TO barman;
    GRANT pg_read_all_stats TO barman;
    CREATE USER streaming_barman WITH REPLICATION;
    "

    Sustituye CONTAINER_NAME por el nombre que asignaste al contenedor de AlloyDB Omni cuando lo instalaste.

    Podman

    podman exec CONTAINER_NAME psql -h localhost -U postgres -c "
    CREATE USER barman;
    GRANT EXECUTE ON FUNCTION pg_backup_start(text, boolean) to barman;
    GRANT EXECUTE ON FUNCTION pg_backup_stop(boolean) to barman;
    GRANT EXECUTE ON FUNCTION pg_switch_wal() to barman;
    GRANT EXECUTE ON FUNCTION pg_create_restore_point(text) to barman;
    GRANT pg_read_all_settings TO barman;
    GRANT pg_read_all_stats TO barman;
    CREATE USER streaming_barman WITH REPLICATION;
    "

    Sustituye CONTAINER_NAME por el nombre que asignaste al contenedor de AlloyDB Omni cuando lo instalaste.

  2. Añada las siguientes líneas al archivo DATA_DIR/pg_hba.conf antes de la línea host all all all scram-sha-256 que ya está en el archivo:

    host all barman BARMAN_IP/32 AUTHN_METHOD
    host replication streaming_barman BARMAN_IP/32 AUTHN_METHOD
    

    Haz los cambios siguientes:

    • DATA_DIR: la ruta del sistema de archivos que se usa para el directorio de datos de AlloyDB Omni.

    • BARMAN_IP: la dirección IP del servidor Barman.

    • AUTHN_METHOD: el método de autenticación de PostgreSQL que espera tu servidor AlloyDB para PostgreSQL del servidor Barman. Te recomendamos que utilices uno de los siguientes valores:

      • Para permitir que el servidor Barman se autentique sin contraseña, usa trust.

      • Para requerir una contraseña del servidor Barman, usa scram-sha-256.

  3. Añade las siguientes líneas al archivo DATA_DIR/postgresql.conf:

    archive_command='/bin/true'
    archive_mode=on
    listen_addresses='*'
    wal_level='replica'
    
  4. Reinicia el servicio AlloyDB Omni:

    Docker

    docker restart CONTAINER_NAME

    Podman

    podman restart CONTAINER_NAME

    Sustituye CONTAINER_NAME por el nombre que asignaste al contenedor de AlloyDB Omni cuando lo instalaste.

  5. Para confirmar que todos los parámetros necesarios están configurados correctamente, ejecuta el siguiente comando:

    Docker

    docker exec CONTAINER_NAME psql -h localhost -U postgres -c "
    SELECT name, setting
       FROM pg_catalog.pg_settings
       WHERE name IN ('archive_command',
                      'archive_mode',
                      'listen_addresses',
                      'wal_level')
       ORDER BY name;"

    Podman

    podman exec CONTAINER_NAME psql -h localhost -U postgres -c "
    SELECT name, setting
       FROM pg_catalog.pg_settings
       WHERE name IN ('archive_command',
                      'archive_mode',
                      'listen_addresses',
                      'wal_level')
       ORDER BY name;"

    El resultado es el siguiente:

       name          |  setting
    ------------------|-----------
    archive_command   | /bin/true
    archive_mode      | on
    listen_addresses  | *
    wal_level         | replica
    (4 rows)
    

Configurar el servidor de copias de seguridad de Barman

Para configurar Barman de forma que funcione con tu servidor AlloyDB Omni, ejecuta los siguientes comandos en tu servidor Barman.

  1. Verifica que la conexión de replicación de streaming funciona:

    psql -h DATABASE_IP -U streaming_barman -c "IDENTIFY_SYSTEM" replication=1

    El resultado debería ser similar al siguiente:

          systemid       | timeline |  xlogpos   | dbname
    ---------------------+----------+------------+--------
     7265722823667040273 |        1 | 0/1F0AFCD0 |
    (1 row)
    
  2. Asegúrate de que Barman pueda conectarse al servidor de AlloyDB Omni como usuario de la base de datos barman.

    psql -t -h DATABASE_IP -U barman -d postgres -c "SELECT 'Connected as: '||current_user"

    Sustituye DATABASE_IP por la dirección IP de tu servidor AlloyDB Omni.

    El resultado debería ser similar al siguiente:

    Connected as: barman
    
  3. Configura el servidor de copias de seguridad de Barman según tus necesidades y preferencias.

    Tu configuración debe incluir los siguientes ajustes:

    • Define conninfo para conectarte a la base de datos postgres de AlloyDB Omni como usuario barman.
    • Define streaming_conninfo para usar el usuario streaming_barman.
    • Configura otras directivas necesarias para habilitar la transmisión de WAL, tal como se indica en la documentación de Barman.

    En el siguiente ejemplo mínimo, pero completo, se modifica un ejemplo de configuración de streaming de la documentación de Barman:

    [CONFIGURATION_TAG]
    description = "Backup settings for my AlloyDB Omni server"
    conninfo = host=DATABASE_IP user=barman dbname=postgres
    streaming_conninfo = host=DATABASE_IP user=streaming_barman
    backup_method = postgres
    streaming_archiver = on
    slot_name = barman
    

    Haz los cambios siguientes:

    • CONFIGURATION_TAG: una etiqueta breve para identificar esta configuración del servidor al ejecutar comandos barman. Por ejemplo, omni.

    • DATABASE_IP: la dirección IP de tu servidor AlloyDB Omni.

  4. Cambia al usuario barman.

    sudo su - barman
  5. Usa el comando barman receive-wal para crear un espacio de replicación y, a continuación, empieza a recibir un flujo WAL del servidor de la base de datos:

    barman receive-wal --create-slot CONFIGURATION_TAG
    barman receive-wal CONFIGURATION_TAG &

    Sustituye CONFIGURATION_TAG por la etiqueta de configuración que has elegido en el paso anterior.

Barman ya está configurado para funcionar con tu servidor AlloyDB Omni. Para comprobar el estado de la replicación, crear copias de seguridad manuales y realizar otras tareas, consulta Comandos generales.

Por ejemplo, para crear una copia de seguridad manual, ejecuta el comando barman backup.

Siguientes pasos