Configura Barman per AlloyDB Omni

Questa pagina mostra come proteggere i dati configurando AlloyDB Omni per il funzionamento con Barman, un server di backup del database open source.

Puoi proteggere i dati di AlloyDB Omni utilizzando qualsiasi tecnologia di backup del database compatibile con PostgreSQL. Ad esempio, puoi configurare AlloyDB Omni per consentire le connessioni da un server Barman che controlli. In questo modo, il server Barman può eseguire backup continui dei dati archiviati nel server AlloyDB Omni.

Dopo aver configurato i server Barman e AlloyDB Omni per il funzionamento in sinergia, puoi successivamente eseguire i comandi Barman per svolgere una serie di attività di protezione dei dati e di ripristino dei disastri, tra cui:

  • Crea un backup on demand dei tuoi dati.
  • Configura lo streaming WAL sincrono delle modifiche ai dati sul server di backup.
  • Ripristina da un backup specifico.
  • Esegui un ripristino point-in-time.

Per ulteriori informazioni sul funzionamento di Barman, consulta il manuale di Barman.

Prima di iniziare

Prima di configurare AlloyDB Omni per il funzionamento con Barman, devi disporre di quanto segue:

Configura AlloyDB Omni per il funzionamento con Barman

Per preparare il server AlloyDB Omni a funzionare con Barman, esegui i seguenti comandi sul server su cui hai installato AlloyDB Omni.

  1. Crea l'utente del database barman con i privilegi appropriati:

    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;
    "
  2. Aggiungi le seguenti righe al file DATA_DIR/pg_hba.conf prima della riga host all all all scram-sha-256 esistente nel file:

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

    Sostituisci quanto segue:

    • DATA_DIR: il percorso del file system utilizzato per la directory dei dati di AlloyDB Omni.

    • BARMAN_IP: l'indirizzo IP del server Barman.

    • AUTHN_METHOD: il metodo di autenticazione PostgreSQL che il server AlloyDB per PostgreSQL si aspetta dal server Barman. Ti consigliamo uno dei seguenti valori:

      • Per consentire al server Barman di autenticarsi senza password, utilizza trust.

      • Per richiedere una password dal server Barman, utilizza scram-sha-256.

  3. Aggiungi le seguenti righe al file DATA_DIR/postgresql.conf:

    archive_command='/bin/true'
    archive_mode=on
    listen_addresses='*'
    wal_level='replica'
    
  4. Riavvia il servizio AlloyDB Omni:

    docker restart CONTAINER_NAME

    Sostituisci CONTAINER_NAME con il nome assegnato al contenitore AlloyDB Omni durante l'installazione.

  5. Verifica che tutti i parametri necessari siano impostati correttamente eseguendo il seguente comando:

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

    L'output è il seguente:

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

Configura il server di backup Barman

Per configurare Barman in modo che funzioni con il server AlloyDB Omni, esegui i seguenti comandi sul server Barman.

  1. Verifica che la connessione di replica in streaming funzioni:

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

    L'output è simile al seguente:

          systemid       | timeline |  xlogpos   | dbname
    ---------------------+----------+------------+--------
     7265722823667040273 |        1 | 0/1F0AFCD0 |
    (1 row)
    
  2. Assicurati che Barman possa connettersi al server AlloyDB Omni come utente del database barman.

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

    Sostituisci DATABASE_IP con l'indirizzo IP del server AlloyDB Omni.

    L'output è simile al seguente:

    Connected as: barman
    
  3. Configura il server di backup Barman in base alle tue esigenze e preferenze.

    La configurazione deve includere le seguenti impostazioni:

    • Imposta conninfo per connetterti al database AlloyDB Omni postgres come utente barman.
    • Imposta streaming_conninfo per utilizzare l'utente streaming_barman.
    • Configura le altre direttive necessarie per abilitare lo streaming WAL, come indicato nella documentazione di Barman.

    Il seguente esempio minimo, ma completo, modifica un esempio di configurazione di streaming dalla documentazione di 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
    

    Sostituisci quanto segue:

    • CONFIGURATION_TAG: un tag breve per identificare questa configurazione del server quando esegui i comandi barman, ad esempio omni.

    • DATABASE_IP: l'indirizzo IP del server AlloyDB Omni.

  4. Passa all'utente barman.

    sudo su - barman
  5. Utilizza il comando barman receive-wal per creare uno slot di replica, quindi inizia a ricevere uno stream WAL dal server di database:

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

    Sostituisci CONFIGURATION_TAG con il tag di configurazione scelto nel passaggio precedente.

Barman è ora configurato per funzionare con il tuo server AlloyDB Omni. Per controllare lo stato della replica, creare backup manuali ed eseguire altre attività, consulta Comandi generali.

Ad esempio, per creare un backup manuale, esegui il comando barman backup.

Passaggi successivi