Esta página mostra como proteger seus dados configurando o AlloyDB Omni para funcionar com o Barman, um servidor de backup de banco de dados de código aberto.
É possível proteger seus dados do AlloyDB Omni usando qualquer tecnologia de backup de banco de dados compatível com o PostgreSQL. Por exemplo, é possível configurar o AlloyDB Omni para permitir conexões de um servidor do Barman que você controla. Isso permite que o servidor Barman faça backups contínuos dos dados armazenados no servidor AlloyDB Omni.
Depois de configurar os servidores Barman e AlloyDB Omni para trabalharem juntos, você pode executar comandos do Barman para realizar várias tarefas de proteção de dados e recuperação de desastres, incluindo:
- Crie um backup sob demanda dos seus dados.
- Configure o streaming WAL síncrono das mudanças de dados no servidor de backup.
- Restaurar de um backup específico.
- Faça 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:
AlloyDB Omni instalado e em execução em um servidor que você controla.
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 funcionar com o Barman
Para preparar o servidor do AlloyDB Omni para funcionar com o Barman, execute os comandos abaixo no servidor em que você instalou o AlloyDB Omni.
Crie o usuário do banco 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 você atribuiu ao contêiner AlloyDB Omni quando ele foi instalado.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 você atribuiu ao contêiner AlloyDB Omni quando ele foi instalado.Adicione as linhas abaixo ao arquivo
DATA_DIR/pg_hba.conf
antes da linhahost all all all scram-sha-256
que existe no arquivo:host all barman BARMAN_IP/32 AUTHN_METHOD host replication streaming_barman BARMAN_IP/32 AUTHN_METHOD
Substitua:
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 AlloyDB para PostgreSQL espera do servidor Barman. Recomendamos um dos seguintes valores:Para permitir que o servidor do Barman faça a autenticação sem uma senha, use
trust
.Para exigir uma senha do servidor do 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_NAME
pelo nome que você atribuiu ao contêiner AlloyDB Omni quando ele foi instalado.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;"
A saída é 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 AlloyDB Omni, execute os comandos abaixo no servidor do Barman.
Verifique se a conexão de replicação de streaming funciona:
psql -h DATABASE_IP -U streaming_barman -c "IDENTIFY_SYSTEM" replication=1
O 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 usuário do banco 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 será assim:
Connected as: barman
Configure o servidor de backup do Barman de acordo com suas necessidades e preferências.
Sua configuração precisa incluir as seguintes configurações:
- Defina
conninfo
para se conectar ao banco de dadospostgres
do AlloyDB Omni como o usuáriobarman
. - Defina
streaming_conninfo
para usar o usuáriostreaming_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, 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
Substitua:
CONFIGURATION_TAG
: uma tag curta para identificar essa configuração do 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 - barman
Use o comando
barman receive-wal
para criar um slot de replicação e, em seguida, começar a receber um stream WAL do servidor de banco de dados:barman receive-wal --create-slot CONFIGURATION_TAG
barman receive-wal CONFIGURATION_TAG &
Substitua
CONFIGURATION_TAG
pela tag de configuração escolhida na etapa anterior.
O Barman agora está configurado para funcionar com seu servidor 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 comando barman backup
.