Configurer Barman pour AlloyDB Omni

Cette page explique comment protéger vos données en configurant AlloyDB Omni pour qu'il fonctionne avec Barman, un serveur de sauvegarde de base de données Open Source.

Vous pouvez protéger vos données AlloyDB Omni à l'aide de n'importe quelle technologie de sauvegarde de base de données compatible avec PostgreSQL. Par exemple, vous pouvez configurer AlloyDB Omni pour autoriser les connexions à partir d'un serveur Barman que vous contrôlez. Cela permet au serveur Barman d'effectuer des sauvegardes continues des données stockées sur votre serveur AlloyDB Omni.

Une fois que vous avez configuré vos serveurs Barman et AlloyDB Omni pour qu'ils fonctionnent ensemble, vous pouvez ensuite exécuter des commandes Barman pour effectuer diverses tâches de protection des données et de reprise après sinistre, y compris les suivantes:

  • Créez une sauvegarde à la demande de vos données.
  • Configurez le streaming WAL synchrone de vos modifications de données vers votre serveur de sauvegarde.
  • Restaurez-le à partir d'une sauvegarde spécifique.
  • Effectuez une restauration à un moment précis.

Pour en savoir plus sur le fonctionnement de Barman, consultez le manuel Barman.

Avant de commencer

Avant de configurer AlloyDB Omni pour qu'il fonctionne avec Barman, vous devez disposer des éléments suivants:

Configurer AlloyDB Omni pour qu'il fonctionne avec Barman

Pour préparer votre serveur AlloyDB Omni à fonctionner avec Barman, exécutez les commandes suivantes sur le serveur où vous avez installé AlloyDB Omni.

  1. Créez l'utilisateur de base de données barman, avec les droits appropriés:

    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. Ajoutez les lignes suivantes dans le fichier DATA_DIR/pg_hba.conf avant la ligne host all all all scram-sha-256 existante dans le fichier:

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

    Remplacez les éléments suivants :

    • DATA_DIR: chemin d'accès au système de fichiers utilisé pour le répertoire de données AlloyDB Omni.

    • BARMAN_IP: adresse IP du serveur Barman.

    • AUTHN_METHOD: méthode d'authentification PostgreSQL attendue par votre serveur AlloyDB pour PostgreSQL du serveur Barman. Nous vous recommandons l'une des valeurs suivantes:

      • Pour autoriser le serveur Barman à s'authentifier sans mot de passe, utilisez trust.

      • Pour exiger un mot de passe du serveur Barman, utilisez scram-sha-256.

  3. Ajoutez les lignes suivantes au fichier DATA_DIR/postgresql.conf:

    archive_command='/bin/true'
    archive_mode=on
    listen_addresses='*'
    wal_level='replica'
    
  4. Redémarrez le service AlloyDB Omni:

    docker restart CONTAINER_NAME

    Remplacez CONTAINER_NAME par le nom que vous avez attribué au conteneur AlloyDB Omni lorsque vous l'avez installé.

  5. Vérifiez que tous les paramètres nécessaires sont correctement définis en exécutant la commande suivante:

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

    Voici le résultat :

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

Configurer le serveur de sauvegarde Barman

Pour configurer Barman pour qu'il fonctionne avec votre serveur AlloyDB Omni, exécutez les commandes suivantes sur votre serveur Barman.

  1. Vérifiez que la connexion de réplication en streaming fonctionne:

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

    Le résultat ressemble à ce qui suit :

          systemid       | timeline |  xlogpos   | dbname
    ---------------------+----------+------------+--------
     7265722823667040273 |        1 | 0/1F0AFCD0 |
    (1 row)
    
  2. Assurez-vous que Barman peut se connecter au serveur AlloyDB Omni en tant qu'utilisateur de la base de données barman.

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

    Remplacez DATABASE_IP par l'adresse IP de votre serveur AlloyDB Omni.

    Le résultat ressemble à ce qui suit :

    Connected as: barman
    
  3. Configurez le serveur de sauvegarde Barman en fonction de vos besoins et de vos préférences.

    Votre configuration doit inclure les paramètres suivants:

    • Définissez conninfo pour vous connecter à la base de données postgres AlloyDB Omni en tant qu'utilisateur barman.
    • Définissez streaming_conninfo pour utiliser l'utilisateur streaming_barman.
    • Configurez les autres directives requises pour activer le streaming WAL, comme indiqué dans la documentation Barman.

    L'exemple minimal mais complet suivant modifie un exemple de configuration de streaming de la documentation 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
    

    Remplacez les éléments suivants :

    • CONFIGURATION_TAG: balise courte permettant d'identifier cette configuration de serveur lors de l'exécution de commandes barman (par exemple, omni).

    • DATABASE_IP: adresse IP de votre serveur AlloyDB Omni.

  4. Passez à l'utilisateur barman.

    sudo su - barman
  5. Utilisez la commande barman receive-wal pour créer un emplacement de réplication, puis commencez à recevoir un flux WAL à partir du serveur de base de données:

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

    Remplacez CONFIGURATION_TAG par la balise de configuration que vous avez choisie à l'étape précédente.

Barman est maintenant configuré pour fonctionner avec votre serveur AlloyDB Omni. Pour vérifier l'état de la réplication, créer des sauvegardes manuelles et effectuer d'autres tâches, consultez la section Commandes générales.

Par exemple, pour créer une sauvegarde manuelle, exécutez la commande barman backup.

Étape suivante