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. Por exemplo, 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 onde instalou o AlloyDB Omni.
Crie o utilizador da base de dados
barman
com os privilégios adequados: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; "
Substitua
CONTAINER_NAME
pelo nome que atribuiu ao contentor do AlloyDB Omni quando o instalou.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; "
Substitua
CONTAINER_NAME
pelo nome que atribuiu ao contentor do AlloyDB Omni quando o instalou.Adicione as seguintes linhas no ficheiro
DATA_DIR/pg_hba.conf
antes da linhahost all all all scram-sha-256
existente no ficheiro:host all barman BARMAN_IP/32 AUTHN_METHOD host replication streaming_barman BARMAN_IP/32 AUTHN_METHOD
Substitua o seguinte:
DATA_DIR
: o caminho do sistema de ficheiros usado para o diretório de dados do AlloyDB Omni.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 faça a autenticação sem uma palavra-passe, use
trust
.Para exigir uma palavra-passe do servidor Barman, use
scram-sha-256
.
Adicione as seguintes linhas ao ficheiro
DATA_DIR/postgresql.conf
:archive_command='/bin/true' archive_mode=on listen_addresses='*' wal_level='replica'
Reinicie o serviço AlloyDB Omni:
Docker
docker restart CONTAINER_NAME
Podman
podman restart CONTAINER_NAME
Substitua
CONTAINER_NAME
pelo nome que atribuiu ao contentor do AlloyDB Omni quando o instalou.Confirme se todos os parâmetros necessários estão definidos corretamente executando o seguinte comando:
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;"
O resultado é o seguinte:
name | setting ------------------|----------- archive_command | /bin/true archive_mode | on listen_addresses | * wal_level | replica (4 rows)
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.
Verifique se a ligação de replicação de streaming funciona:
psql -h DATABASE_IP -U streaming_barman -c "IDENTIFY_SYSTEM" replication=1
O resultado é semelhante ao seguinte:
systemid | timeline | xlogpos | dbname ---------------------+----------+------------+-------- 7265722823667040273 | 1 | 0/1F0AFCD0 | (1 row)
Certifique-se de que o Barman consegue estabelecer ligação ao servidor do AlloyDB Omni como o utilizador da base de dados
barman
.psql -t -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:
Connected as: barman
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 utilizadorstreaming_barman
. - 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=streaming_barman 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:barman receive-wal --create-slot CONFIGURATION_TAG
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
.