Pode proteger os seus dados do AlloyDB Omni através de qualquer tecnologia de cópia de segurança de base de dados que funcione com o PostgreSQL. Como prática recomendada, a Google recomenda o Barman. Pode configurar o AlloyDB Omni para permitir ligações a partir de um servidor Barman que controla. Isto permite que o servidor Barman faça cópias de segurança contínuas dos dados armazenados no seu servidor AlloyDB Omni.
Depois de configurar os servidores Barman e AlloyDB Omni para funcionarem em conjunto, pode executar comandos do Barman para realizar várias tarefas de proteção de dados e recuperação de desastres, incluindo o seguinte:
- Crie uma cópia de segurança a pedido dos seus dados.
- Configurar a transmissão em stream síncrona de WAL das alterações de dados para o servidor de cópia de segurança.
- Restaurar a partir de uma cópia de segurança específica.
- Faça um restauro pontual.
Para mais informações sobre o funcionamento do Barman, consulte o manual do Barman.
Antes de começar
Antes de configurar o AlloyDB Omni para funcionar com o Barman, precisa do seguinte:
O AlloyDB Omni está instalado e em execução num servidor que controla.
Barman instalado num servidor separado. O servidor no qual instalou o Barman tem de conseguir comunicar com o servidor do AlloyDB Omni através de TCP.
Configure o AlloyDB Omni para funcionar com o Barman
Para preparar o servidor AlloyDB Omni para funcionar com o Barman, execute os seguintes comandos no servidor no qual instalou o AlloyDB Omni.
Crie o utilizador da base de dados
barman
com os privilégios adequados: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; "
Adicione as seguintes linhas a
/var/alloydb/config/pg_hba.conf
:host all barman BARMAN_IP/32 AUTHN_METHOD host replication alloydbreplica BARMAN_IP/32 AUTHN_METHOD
Substitua o seguinte:
BARMAN_IP
: o endereço IP do servidor Barman.AUTHN_METHOD
: o método de autenticação do PostgreSQL que o seu servidor AlloyDB para PostgreSQL espera do servidor Barman. Recomendamos um dos seguintes valores:Para permitir que o servidor Barman se autentique sem uma palavra-passe, use
trust
.Para exigir uma palavra-passe do servidor Barman, use
scram-sha-256
.
Adicione as seguintes linhas ao ficheiro
/var/alloydb/config/postgresql.conf
:archive_command='/bin/true' archive_mode=on listen_addresses='*' wal_level='replica'
Reinicie o serviço AlloyDB Omni:
sudo alloydb database-server stop
sudo alloydb database-server start
Confirme se todos os parâmetros necessários estão definidos corretamente executando o seguinte comando:
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; "
O resultado é semelhante ao seguinte:
name | setting ------------------|----------- archive_command | /bin/true archive_mode | on listen_addresses | * wal_level | replica (4 rows)
Verifique se a ligação de replicação de streaming funciona:
docker exec pg-service psql -h localhost -U postgres -c "IDENTIFY_SYSTEM" replication=1
O resultado é semelhante ao seguinte:
systemid | timeline | xlogpos | dbname ---------------------+----------+------------+-------- 7265722823667040273 | 1 | 0/1F0AFCD0 | (1 row)
Configure o servidor de cópias de segurança do Barman
Para configurar o Barman para funcionar com o seu servidor AlloyDB Omni, execute os seguintes comandos no servidor Barman.
Certifique-se de que o Barman consegue estabelecer ligação ao servidor do AlloyDB Omni como o utilizador da base de dados
barman
.psql -h DATABASE_IP -U barman -d postgres -c "SELECT 'Connected as: '||current_user"
Substitua
DATABASE_IP
pelo endereço IP do seu servidor AlloyDB Omni.O resultado é semelhante ao seguinte:
?column? ---------------------- Connected as: barman (1 row)
Configure o servidor de cópia de segurança do Barman de acordo com as suas necessidades e preferências.
A configuração tem de incluir as seguintes definições:
- Defina
conninfo
para estabelecer ligação à base de dados do AlloyDB Omni como o utilizadorbarman
.postgres
- Defina o
streaming_conninfo
para usar o utilizadoralloydbreplica
. - Configure outras diretivas necessárias para ativar o streaming de WAL, conforme indicado na documentação do Barman.
O exemplo mínimo, mas completo, seguinte modifica um exemplo de configuração de streaming da documentação do 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
Substitua o seguinte:
CONFIGURATION_TAG
: uma etiqueta curta para identificar esta configuração do servidor quando executar comandosbarman
, por exemplo,omni
.DATABASE_IP
: o endereço IP do seu servidor AlloyDB Omni.
- Defina
Mudar para o utilizador
barman
.sudo su barman
Use o comando
barman receive-wal
para criar um espaço de replicação e, em seguida, comece a receber uma stream WAL do servidor de base de dados:sudo barman receive-wal --create-slot CONFIGURATION_TAG
sudo barman receive-wal CONFIGURATION_TAG &
Substitua
CONFIGURATION_TAG
pela etiqueta de configuração que escolheu no passo anterior.
O Barman está agora configurado para funcionar com o seu servidor AlloyDB Omni. Para verificar o estado da replicação, criar cópias de segurança manuais e realizar outras tarefas, consulte Comandos gerais.
Por exemplo, para criar uma cópia de segurança manual, execute o comando barman backup
.