Você pode proteger seus dados do AlloyDB Omni usando qualquer tecnologia de backup de banco de dados que funcione com o PostgreSQL. Por exemplo, é possível configurar o AlloyDB Omni para permitir conexões de um servidor Barman controlado por você. Isso permite que o servidor Barman execute backups contínuos dos dados armazenados no servidor do AlloyDB Omni.
Depois de configurar os servidores Barman e AlloyDB Omni para trabalhar juntos, você poderá executar comandos do Barman para realizar várias tarefas de proteção de dados e recuperação de desastres, incluindo o seguinte:
- Criar um backup sob demanda dos dados.
- Configurar o streaming WAL síncrono das mudanças de dados para o servidor de backup.
- Restaurar a partir de um backup específico.
- Realizar uma restauração pontual.
Para mais informações sobre a operação do Barman, consulte o manual do Barman.
Antes de começar
Antes de configurar o AlloyDB Omni para trabalhar com o Barman, você precisa do seguinte:
O AlloyDB Omni instalado e em execução em um servidor controlado por você.
O Barman instalado em um servidor separado. O servidor em que você instalou o Barman precisa se comunicar com o servidor do AlloyDB Omni por TCP.
Configurar o AlloyDB Omni para trabalhar com o Barman
Para preparar o servidor do AlloyDB Omni para trabalhar com o Barman, execute os comandos a seguir no servidor em que você instalou o AlloyDB Omni.
Crie o usuário do banco de dados
barman, com os privilégios apropriados: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; GRANT pg_read_all_settings TO streaming_barman; "
Substitua
CONTAINER_NAMEpelo nome que você atribuiu ao contêiner do AlloyDB Omni ao instalá-lo.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; GRANT pg_read_all_settings TO streaming_barman; "
Substitua
CONTAINER_NAMEpelo nome que você atribuiu ao contêiner do AlloyDB Omni ao instalá-lo.Adicione as seguintes linhas ao arquivo
DATA_DIR/pg_hba.confantes da linha `host all all all * ` que existe no arquivo:host all barman BARMAN_IP/32 AUTHN_METHOD host replication streaming_barman BARMAN_IP/32 AUTHN_METHODSubstitua:
DATA_DIR: o caminho do sistema de arquivos 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 servidor do 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 senha, use
trust.Para exigir uma senha do servidor Barman, use
scram-sha-256.
Adicione as seguintes linhas ao arquivo
DATA_DIR/postgresql.conf:archive_command='/bin/true' archive_mode=on listen_addresses='*' wal_level='replica'Reinicie o serviço do AlloyDB Omni:
Docker
docker restart CONTAINER_NAME
Podman
podman restart CONTAINER_NAME
Substitua
CONTAINER_NAMEpelo nome que você atribuiu ao contêiner do AlloyDB Omni ao instalá-lo.Confirme se todos os parâmetros necessários estão definidos corretamente executando o comando a seguir:
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;"A resposta é a seguinte:
name | setting ------------------|----------- archive_command | /bin/true archive_mode | on listen_addresses | * wal_level | replica (4 rows)
Configurar o servidor de backup do Barman
Para configurar o Barman para trabalhar com o servidor do AlloyDB Omni, execute os comandos a seguir no servidor Barman.
Verifique se a conexão de replicação de streaming funciona:
psql -h DATABASE_IP -U streaming_barman -c "IDENTIFY_SYSTEM" replication=1O resultado será assim:
systemid | timeline | xlogpos | dbname ---------------------+----------+------------+-------- 7265722823667040273 | 1 | 0/1F0AFCD0 | (1 row)Verifique se o Barman pode se conectar ao servidor do AlloyDB Omni como o usuário do banco de dados
barman.psql -t -h DATABASE_IP -U barman -d postgres -c "SELECT 'Connected as: '||current_user"Substitua
DATABASE_IPpelo endereço IP do servidor do AlloyDB Omni.O resultado será assim:
Connected as: barmanConfigure o servidor de backup do Barman de acordo com suas necessidades e preferências.
A configuração precisa incluir as seguintes definições:
- Defina
conninfopara se conectar ao banco de dadospostgresdo AlloyDB Omni como o usuáriobarman. - Defina
streaming_conninfopara usar o usuáriostreaming_barman. - Configure outras diretivas necessárias para ativar o streaming WAL, conforme indicado na documentação do Barman.
O exemplo mínimo, mas completo, a seguir 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 path_prefix = /usr/lib/postgresql/18/binSubstitua:
CONFIGURATION_TAG: uma tag curta para identificar essa configuração de servidor ao executar comandosbarman, por exemplo,omni.DATABASE_IP: o endereço IP do servidor do AlloyDB Omni.
- Defina
Mude para o usuário
barman.sudo su - barmanUse o comando
barman receive-walpara criar um slot de replicação e, em seguida, comece a receber um fluxo WAL do servidor de banco de dados:barman receive-wal --create-slot CONFIGURATION_TAGbarman receive-wal CONFIGURATION_TAG &Substitua
CONFIGURATION_TAGpela tag de configuração escolhida na etapa anterior.
O Barman agora está configurado para trabalhar com o servidor do AlloyDB Omni. Para verificar o status da replicação, criar backups manuais e realizar outras tarefas, consulte Comandos gerais.
Por exemplo, para criar um backup manual, execute o barman backup comando.