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. Le serveur Barman peut ainsi 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:
AlloyDB Omni installé et en cours d'exécution sur un serveur que vous contrôlez.
Barman installé sur un serveur distinct. Le serveur sur lequel vous avez installé Barman doit pouvoir communiquer avec le serveur AlloyDB Omni via TCP.
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.
Créez l'utilisateur de base de données
barman
, avec les droits appropriés: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; "
Remplacez
CONTAINER_NAME
par le nom que vous avez attribué au conteneur AlloyDB Omni lorsque vous l'avez installé.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; "
Remplacez
CONTAINER_NAME
par le nom que vous avez attribué au conteneur AlloyDB Omni lorsque vous l'avez installé.Ajoutez les lignes suivantes dans le fichier
DATA_DIR/pg_hba.conf
avant la lignehost 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
.
Ajoutez les lignes suivantes au fichier
DATA_DIR/postgresql.conf
:archive_command='/bin/true' archive_mode=on listen_addresses='*' wal_level='replica'
Redémarrez le service AlloyDB Omni:
Docker
docker restart CONTAINER_NAME
Podman
podman restart CONTAINER_NAME
Remplacez
CONTAINER_NAME
par le nom que vous avez attribué au conteneur AlloyDB Omni lorsque vous l'avez installé.Vérifiez que tous les paramètres nécessaires sont correctement définis en exécutant la commande suivante:
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;"
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.
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)
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
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éespostgres
AlloyDB Omni en tant qu'utilisateurbarman
. - Définissez
streaming_conninfo
pour utiliser l'utilisateurstreaming_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 commandesbarman
(par exemple,omni
).DATABASE_IP
: adresse IP de votre serveur AlloyDB Omni.
- Définissez
Passez à l'utilisateur
barman
.sudo su - barman
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
.