Restaurar um cluster do AlloyDB Omni usando o pgBackRest

Esta página mostra como restaurar um cluster do AlloyDB Omni usando um backup criado com o pgBackRest, a solução de backup de código aberto incluída no contêiner do AlloyDB Omni Docker.

Como o AlloyDB Omni é compatível com o PostgreSQL, os comandos e técnicas de restauração de dados descritos no manual do pgBackRest 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 pgBackRest para funcionar com o AlloyDB Omni, consulte Configurar o pgBackRest para o AlloyDB Omni.

Consulte Fazer backup e restaurar no Kubernetes para informações baseadas no Kubernetes.

Antes de começar

Antes de configurar o AlloyDB Omni para funcionar com o pgBackrest, é necessário ter o AlloyDB Omni instalado e em execução em um servidor que você controla.

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

  • Um repositório de backup do pgBackRest que contém pelo menos um backup do banco de dados de origem do AlloyDB Omni.

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

Visão geral

Para fazer uma restauração do AlloyDB Omni usando o pgBackRest, execute o comando pgbackrest restore. Os parâmetros que você fornece ao comando variam de acordo com a situação.

Em geral, você executa o comando pgbackrest restore com flags que fornecem as seguintes informações:

  • O local do arquivo pgbackrest.conf.
  • O nome do repositório de backup do pgBackRest para o qual você quer restaurar. Esses repositórios são nomeados e definidos no arquivo pgbackrest.conf.
  • O local no sistema de arquivos local para gravar os dados restaurados.
  • Um identificador do backup ou do ponto específico no tempo que você quer restaurar.

Ao executar os comandos pgbackrest restore contêinerizados, use os caminhos do sistema de arquivos do ponto de vista do contêiner. Por exemplo, o caminho para o diretório de dados do AlloyDB Omni é sempre /var/lib/postgresql/data, independente do local no servidor host. Para mais informações, consulte Uma observação sobre caminhos do sistema de arquivos.

Realizar uma restauração pontual

Este exemplo restaura dados de um repositório pgBackRest, nomeando um ponto específico para restaurar. Se você tiver definido vários repositórios no arquivo pgbackrest.conf do ambiente de destino, o pgBackRest vai escolher o repositório a ser restaurado com base na disponibilidade, na velocidade esperada e em outros fatores.

O exemplo pressupõe o seguinte:

  • Você tem um arquivo pgbackrest.conf localizado no nível superior do diretório de dados de destino do AlloyDB Omni. Isso disponibiliza o arquivo para o pgbackrest contêinerizado como /var/lib/postgresql/data.

  • Você ativou os backups contínuos com a configuração do pgBackRest.

  1. No ambiente de destino, faça uma restauração pontual, especificando um carimbo de data/hora para a restauração:

    docker exec CONTAINER_NAME pgbackrest \
      --config-path=/var/lib/postgresql/data \
      --stanza=STANZA \
      --type=time \
      --pg1-path=/var/lib/postgresql/data/data-RESTORED \
      --target="TIMESTAMP" \
      restore

    Substitua:

    • CONTAINER_NAME: o nome que você atribuiu ao contêiner do AlloyDB Omni quando o instalou, por exemplo, my-omni.

    • STANZA: o grupo de configuração, definido pelo arquivo pgbackrest.conf, para aplicar a essa restauração. Por exemplo, omni.

    • TIMESTAMP: o tempo de restauração, por exemplo, 2024-02-22 19:50:00.

  2. No ambiente de destino, pare o contêiner usando o seguinte comando:

    docker container stop CONTAINER_NAME
  3. Renomeie o subdiretório data do diretório de dados como medida de segurança:

    cd DATA_DIR
    sudo mv data data-OLD

    Substitua DATA_DIR pelo caminho do sistema de arquivos para o diretório de dados do AlloyDB Omni.

  4. Mova os dados restaurados para o lugar e limpe postgresql.auto.conf:

    sudo mv data-RESTORED data
    sudo sed -i 's|data-RESTORED|data|' data/postgresql.auto.conf
  5. Inicie o contêiner do AlloyDB Omni com o servidor de banco de dados:

    docker container start CONTAINER_NAME

Agora você pode se conectar ao seu banco de dados usando psql e confirmar se os dados foram restaurados conforme o esperado. Se sim, exclua a cópia data-OLD do subdiretório data que você criou anteriormente.

Para mais informações sobre a PITR no pgBackRest, consulte Recuperação pontual. Para mais informações sobre como preparar um arquivo pgbackrest.conf para uso com o AlloyDB Omni, consulte Configurar o pgBackRest para o AlloyDB Omni.

Outras opções

O comando pgbackrest restore é muito flexível, com uma variedade de opções e recursos que podem ser controlados transmitindo diferentes opções de linha de comando. Isso inclui o seguinte:

  • Limitar uma restauração apenas aos arquivos alterados.
  • Restaurando apenas os bancos de dados selecionados.

Para um guia completo sobre como fazer restaurações no pgBackRest, consulte Restore.