Restaurar um cluster do AlloyDB Omni usando o Barman

Esta página mostra como restaurar um cluster do AlloyDB Omni usando um backup criado com o Barman, um servidor de backup de banco de dados de código aberto.

Como o AlloyDB Omni é compatível com o PostgreSQL, os comandos e as técnicas de restauração de dados descritos no manual do Barman também se aplicam ao AlloyDB Omni. Esta página demonstra uma seleção de tarefas de recuperação comuns, com exemplos de comandos relevantes.

Para mais informações sobre como configurar o Barman para trabalhar com o AlloyDB Omni, consulte Configurar o Barman para o AlloyDB Omni.

Antes de começar

Antes de restaurar seus dados do AlloyDB Omni, você precisa do seguinte:

  • Um servidor de banco de dados de destino que executa a mesma versão principal do AlloyDB Omni que o servidor de origem. Para mais informações sobre a instalação do AlloyDB Omni, consulte Instalar o AlloyDB Omni.

    O servidor de destino pode ser a mesma máquina que o servidor de origem.

  • O utilitário rsync, instalado no servidor de destino.

  • Um servidor de backup do Barman, com pelo menos um backup válido do Barman do banco de dados de origem do AlloyDB Omni.

  • Conectividade SSH entre o servidor de backup do Barman e o servidor de destino.

  • Chaves SSH configuradas para permitir que o usuário barman no servidor Barman se autentique com o servidor de destino como usuário postgres sem uma senha.

  • Espaço livre suficiente no disco do servidor de destino para armazenar o banco de dados restaurado.

Recuperar usando um backup específico

  1. No servidor de destino, interrompa o AlloyDB Omni.

    Docker

     docker stop CONTAINER_NAME

    Substitua CONTAINER_NAME pelo nome atribuído ao contêiner do AlloyDB Omni quando ele foi instalado, por exemplo, my-omni.

    Podman

     podman stop CONTAINER_NAME

    Substitua CONTAINER_NAME pelo nome atribuído ao contêiner do AlloyDB Omni quando ele foi instalado, por exemplo, my-omni.

  2. No servidor do Barman, escolha um backup para restaurar. Para conferir os backups disponíveis, execute o comando barman list-backups. Para conferir detalhes sobre um backup específico, execute o comando barman show-backup.

  3. Para recuperar o backup escolhido no servidor de destino do AlloyDB Omni, execute o comando barman recover.

    Ao executar o comando, inclua o seguinte:

    O comando a seguir demonstra um exemplo de uso de barman recover com o AlloyDB Omni:

    barman recover --remote-ssh-command "ssh postgres@TARGET_IP" TARGET_LABEL BACKUP_ID DATA_PATH

    Substitua:

    • TARGET_IP: o endereço IP do servidor de destino.

    • TARGET_LABEL: o rótulo que você atribuiu ao servidor no arquivo de configuração do Barman.

    • BACKUP_ID: o ID do backup a ser restaurado, identificado em uma etapa anterior, por exemplo, 20230810T210200.

    • DATA_PATH: o caminho para o subdiretório data do diretório de dados do servidor de destino, por exemplo, /home/your-username/alloydb-data/data.

  4. No servidor de banco de dados de destino do AlloyDB Omni, inicie o serviço:

    Docker

    docker start CONTAINER_NAME

    Podman

    podman start CONTAINER_NAME

Depois que o serviço for reiniciado, conecte-se ao servidor do AlloyDB Omni. Os bancos de dados e dados restaurados vão aparecer.

Recuperar para um momento específico

Para realizar uma recuperação pontual, siga as mesmas etapas listadas na seção anterior, com uma modificação. Ao executar o comando barman recover, você também precisa especificar uma das opções de recuperação de ponto no tempo do Barman.

O comando a seguir demonstra um exemplo de uso de barman recover com o AlloyDB Omni com uma opção de recuperação de ponto no tempo:

barman recover --remote-ssh-command "ssh postgres@TARGET_IP" TARGET_LABEL BACKUP_ID --target-time="RESTORE_TIMESTAMP" DATA_PATH

Substitua:

  • TARGET_IP: o endereço IP do servidor de destino.

  • TARGET_LABEL: o rótulo que você atribuiu ao servidor no arquivo de configuração do Barman.

  • BACKUP_ID: o ID do backup a ser restaurado, identificado em uma etapa anterior, por exemplo, 20230810T210200.

  • TARGET_TIMESTAMP: o tempo de restauração, em qualquer formato timestamp do PostgreSQL que especifique uma data e um horário, por exemplo, 2024-02-06 00:00:00.

  • DATA_PATH: o caminho para o subdiretório data do diretório de dados do servidor de destino, por exemplo, /home/your-username/alloydb-data/data.