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. Google recommande d'utiliser Barman. 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:
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 sur lequel vous avez installé AlloyDB Omni.
Créez l'utilisateur de base de données
barman
, avec les droits appropriés:docker exec pg-service 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; "
Ajoutez les lignes suivantes à
/var/alloydb/config/pg_hba.conf
:host all barman BARMAN_IP/32 AUTHN_METHOD host replication alloydbreplica BARMAN_IP/32 AUTHN_METHOD
Remplacez les éléments suivants :
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
/var/alloydb/config/postgresql.conf
:archive_command='/bin/true' archive_mode=on listen_addresses='*' wal_level='replica'
Redémarrez le service AlloyDB Omni:
sudo alloydb database-server stop
sudo alloydb database-server start
Vérifiez que tous les paramètres nécessaires sont correctement définis en exécutant la commande suivante:
docker exec pg-service 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; "
Le résultat ressemble à ce qui suit :
name | setting ------------------|----------- archive_command | /bin/true archive_mode | on listen_addresses | * wal_level | replica (4 rows)
Vérifiez que la connexion de réplication en streaming fonctionne:
docker exec pg-service psql -h localhost -U postgres -c "IDENTIFY_SYSTEM" replication=1
Le résultat ressemble à ce qui suit :
systemid | timeline | xlogpos | dbname ---------------------+----------+------------+-------- 7265722823667040273 | 1 | 0/1F0AFCD0 | (1 row)
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.
Assurez-vous que Barman peut se connecter au serveur AlloyDB Omni en tant qu'utilisateur de la base de données
barman
.psql -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 :
?column? ---------------------- Connected as: barman (1 row)
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'utilisateuralloydbreplica
. - 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=alloydbreplica 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:sudo barman receive-wal --create-slot CONFIGURATION_TAG
sudo 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
.