En esta página, se muestra cómo proteger tus datos configurando AlloyDB Omni para que funcione con Barman, un servidor de copia de seguridad de bases de datos de código abierto.
Puedes proteger tus datos de AlloyDB Omni con cualquier tecnología de copia de seguridad de bases de datos que funcione con PostgreSQL. Como práctica recomendada, Google recomienda Barman. Puedes configurar AlloyDB Omni para permitir conexiones desde un servidor de Barman que controles. Esto permite que el servidor Barman realice copias de seguridad continuas de los datos almacenados en tu servidor AlloyDB Omni.
Después de configurar los servidores Barman y AlloyDB Omni para que funcionen en conjunto, puedes ejecutar comandos de Barman para realizar una variedad de tareas de protección de datos y recuperación ante desastres, incluidas las siguientes:
- Crea una copia de seguridad a pedido de tus datos.
- Configura la transmisión síncrona de WAL de los cambios de datos a tu servidor de copia de seguridad.
- Restablece desde una copia de seguridad específica.
- Realiza una restauración de un momento determinado.
Para obtener más información sobre el funcionamiento de Barman, consulta el manual de Barman.
Antes de comenzar
Antes de configurar AlloyDB Omni para que funcione con Barman, necesitas lo siguiente:
AlloyDB Omni instalado y en ejecución en un servidor que controlas
Barman instalado en un servidor independiente El servidor en el que instalaste Barman debe poder comunicarse con el servidor de AlloyDB Omni a través de TCP.
Configura AlloyDB Omni para que funcione con Barman
Para preparar tu servidor de AlloyDB Omni para que funcione con Barman, ejecuta los siguientes comandos en el servidor en el que instalaste AlloyDB Omni.
Crea el usuario de la base de datos
barman
con los privilegios adecuados: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; "
Agrega las siguientes líneas a
/var/alloydb/config/pg_hba.conf
:host all barman BARMAN_IP/32 AUTHN_METHOD host replication alloydbreplica BARMAN_IP/32 AUTHN_METHOD
Reemplaza lo siguiente:
BARMAN_IP
: Es la dirección IP del servidor Barman.AUTHN_METHOD
: Es el método de autenticación de PostgreSQL que tu servidor de AlloyDB para PostgreSQL espera del servidor de Barman. Te recomendamos uno de los siguientes valores:Para permitir que el servidor Barman se autentique sin una contraseña, usa
trust
.Para exigir una contraseña del servidor de Barman, usa
scram-sha-256
.
Agrega las siguientes líneas al archivo
/var/alloydb/config/postgresql.conf
:archive_command='/bin/true' archive_mode=on listen_addresses='*' wal_level='replica'
Reinicia el servicio de AlloyDB Omni:
sudo alloydb database-server stop
sudo alloydb database-server start
Ejecuta el siguiente comando para confirmar que los parámetros necesarios estén configurados de forma correcta:
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; "
El resultado es similar a este:
name | setting ------------------|----------- archive_command | /bin/true archive_mode | on listen_addresses | * wal_level | replica (4 rows)
Verifica que la conexión de replicación de transmisión funcione:
docker exec pg-service psql -h localhost -U postgres -c "IDENTIFY_SYSTEM" replication=1
El resultado es similar a este:
systemid | timeline | xlogpos | dbname ---------------------+----------+------------+-------- 7265722823667040273 | 1 | 0/1F0AFCD0 | (1 row)
Configura el servidor de copia de seguridad de Barman
Para configurar Barman para que funcione con tu servidor de AlloyDB Omni, ejecuta los siguientes comandos en tu servidor de Barman.
Asegúrate de que Barman pueda conectarse al servidor de AlloyDB Omni como el usuario de la base de datos
barman
.psql -h DATABASE_IP -U barman -d postgres -c "SELECT 'Connected as: '||current_user"
Reemplaza
DATABASE_IP
por la dirección IP de tu servidor AlloyDB Omni.El resultado es similar a este:
?column? ---------------------- Connected as: barman (1 row)
Configura el servidor de copias de seguridad de Barman según tus necesidades y preferencias.
Tu configuración debe incluir los siguientes parámetros:
- Configura
conninfo
para que se conecte a la base de datospostgres
de AlloyDB Omni como el usuariobarman
. - Establece
streaming_conninfo
para usar el usuarioalloydbreplica
. - Configura otras directivas necesarias para habilitar la transmisión de WAL, como se indica en la documentación de Barman.
En el siguiente ejemplo mínimo pero completo, se modifica un ejemplo de configuración de transmisión de la documentación de 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
Reemplaza lo siguiente:
CONFIGURATION_TAG
: Es una etiqueta corta para identificar esta configuración del servidor cuando se ejecutan comandosbarman
, por ejemplo,omni
.DATABASE_IP
: Es la dirección IP de tu servidor de AlloyDB Omni.
- Configura
Cambia al usuario
barman
.sudo su barman
Usa el comando
barman receive-wal
para crear una ranura de replicación y, luego, comienza a recibir una transmisión de WAL desde el servidor de la base de datos:sudo barman receive-wal --create-slot CONFIGURATION_TAG
sudo barman receive-wal CONFIGURATION_TAG &
Reemplaza
CONFIGURATION_TAG
por la etiqueta de configuración que elegiste en el paso anterior.
Barman ahora está configurado para funcionar con tu servidor de AlloyDB Omni. Para verificar el estado de la replicación, crear copias de seguridad manuales y realizar otras tareas, consulta Comandos generales.
Por ejemplo, para crear una copia de seguridad manual, ejecuta el comando barman backup
.