Configure o Barman para o AlloyDB Omni

Selecione uma versão da documentação:

Esta página mostra-lhe como proteger os seus dados configurando o AlloyDB Omni para funcionar com o Barman, um servidor de cópias de segurança de bases de dados de código aberto.

Pode proteger os seus dados do AlloyDB Omni através de qualquer tecnologia de cópia de segurança de base de dados que funcione com o PostgreSQL. Por exemplo, pode configurar o AlloyDB Omni para permitir ligações a partir de um servidor Barman que controla. Isto permite que o servidor Barman faça cópias de segurança contínuas dos dados armazenados no seu servidor AlloyDB Omni.

Depois de configurar os servidores Barman e AlloyDB Omni para funcionarem em conjunto, pode executar comandos do Barman para realizar várias tarefas de proteção de dados e recuperação de desastres, incluindo o seguinte:

  • Crie uma cópia de segurança a pedido dos seus dados.
  • Configurar a transmissão em stream síncrona de WAL das alterações de dados para o servidor de cópia de segurança.
  • Restaurar a partir de uma cópia de segurança específica.
  • Faça um restauro pontual.

Para mais informações sobre o funcionamento do Barman, consulte o manual do Barman.

Antes de começar

Antes de configurar o AlloyDB Omni para funcionar com o Barman, precisa do seguinte:

Configure o AlloyDB Omni para funcionar com o Barman

Para preparar o servidor AlloyDB Omni para funcionar com o Barman, execute os seguintes comandos no servidor onde instalou o AlloyDB Omni.

  1. Crie o utilizador da base de dados barman com os privilégios adequados:

    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;
    "

    Substitua CONTAINER_NAME pelo nome que atribuiu ao contentor do AlloyDB Omni quando o instalou.

    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;
    "

    Substitua CONTAINER_NAME pelo nome que atribuiu ao contentor do AlloyDB Omni quando o instalou.

  2. Adicione as seguintes linhas no ficheiro DATA_DIR/pg_hba.conf antes da linha host all all all scram-sha-256 existente no ficheiro:

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

    Substitua o seguinte:

    • DATA_DIR: o caminho do sistema de ficheiros usado para o diretório de dados do AlloyDB Omni.

    • BARMAN_IP: o endereço IP do servidor Barman.

    • AUTHN_METHOD: o método de autenticação do PostgreSQL que o seu servidor AlloyDB para PostgreSQL espera do servidor Barman. Recomendamos um dos seguintes valores:

      • Para permitir que o servidor Barman faça a autenticação sem uma palavra-passe, use trust.

      • Para exigir uma palavra-passe do servidor Barman, use scram-sha-256.

  3. Adicione as seguintes linhas ao ficheiro DATA_DIR/postgresql.conf:

    archive_command='/bin/true'
    archive_mode=on
    listen_addresses='*'
    wal_level='replica'
    
  4. Reinicie o serviço AlloyDB Omni:

    Docker

    docker restart CONTAINER_NAME

    Podman

    podman restart CONTAINER_NAME

    Substitua CONTAINER_NAME pelo nome que atribuiu ao contentor do AlloyDB Omni quando o instalou.

  5. Confirme se todos os parâmetros necessários estão definidos corretamente executando o seguinte 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;"

    O resultado é o seguinte:

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

Configure o servidor de cópias de segurança do Barman

Para configurar o Barman para funcionar com o seu servidor AlloyDB Omni, execute os seguintes comandos no servidor Barman.

  1. Verifique se a ligação de replicação de streaming funciona:

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

    O resultado é semelhante ao seguinte:

          systemid       | timeline |  xlogpos   | dbname
    ---------------------+----------+------------+--------
     7265722823667040273 |        1 | 0/1F0AFCD0 |
    (1 row)
    
  2. Certifique-se de que o Barman consegue estabelecer ligação ao servidor do AlloyDB Omni como o utilizador da base de dados barman.

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

    Substitua DATABASE_IP pelo endereço IP do seu servidor AlloyDB Omni.

    O resultado é semelhante ao seguinte:

    Connected as: barman
    
  3. Configure o servidor de cópia de segurança do Barman de acordo com as suas necessidades e preferências.

    A configuração tem de incluir as seguintes definições:

    • Defina conninfo para estabelecer ligação à base de dados do AlloyDB Omni como o utilizador barman.postgres
    • Defina o streaming_conninfo para usar o utilizador streaming_barman.
    • Configure outras diretivas necessárias para ativar o streaming de WAL, conforme indicado na documentação do Barman.

    O exemplo mínimo, mas completo, seguinte modifica um exemplo de configuração de streaming da documentação do 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
    

    Substitua o seguinte:

    • CONFIGURATION_TAG: uma etiqueta curta para identificar esta configuração do servidor quando executar comandos barman, por exemplo, omni.

    • DATABASE_IP: o endereço IP do seu servidor AlloyDB Omni.

  4. Mudar para o utilizador barman.

    sudo su - barman
  5. Use o comando barman receive-wal para criar um espaço de replicação e, em seguida, comece a receber uma stream WAL do servidor de base de dados:

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

    Substitua CONFIGURATION_TAG pela etiqueta de configuração que escolheu no passo anterior.

O Barman está agora configurado para funcionar com o seu servidor AlloyDB Omni. Para verificar o estado da replicação, criar cópias de segurança manuais e realizar outras tarefas, consulte Comandos gerais.

Por exemplo, para criar uma cópia de segurança manual, execute o comando barman backup.

O que se segue?