Restaurar um cluster do AlloyDB Omni usando pgBackRest

Selecione uma versão da documentação:

Nesta página, mostramos 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 Docker do AlloyDB Omni.

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

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

Antes de começar

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

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

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

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

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

Visão geral

Para realizar uma restauração do AlloyDB Omni usando o pgBackRest, execute o comando pgbackrest restore. Os argumentos que você fornece ao comando variam de acordo com sua 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 que você quer restaurar. Esses repositórios são nomeados e definidos no arquivo pgbackest.conf.
  • O local no sistema de arquivos local para gravar os dados restaurados.
  • Um identificador do backup ou momento específico que você quer restaurar.

Ao executar os comandos pgbackrest restore em contêineres, use 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 /mnt/disks/pgsql, independente da localização no servidor host. Para mais informações, consulte Uma observação sobre caminhos do sistema de arquivos.

Fazer uma restauração pontual

Este exemplo restaura dados de um repositório pgBackRest, nomeando um ponto específico no tempo 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 para restaurar 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 em contêiner como /mnt/disks/pgsql/pgbackrest.conf.

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

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

    sudo docker exec pg-service pgbackrest \
      --config-path=/mnt/disks/pgsql \
      --stanza=STANZA \
      --type=time \
      --pg1-path=/mnt/disks/pgsql/data-RESTORED \
      --target="TIMESTAMP" \
      restore

    Substitua:

    • STANZA: a seção de configuração, definida pelo arquivo pgbackrest.conf, a ser aplicada a esta restauração. Por exemplo, omni.

    • TIMESTAMP: o momento em que a restauração será feita, por exemplo, 2024-02-22 19:50:00.

  2. No ambiente de destino, interrompa o servidor de banco de dados:

    sudo alloydb database-server stop
  3. Renomeie o subdiretório data do diretório de dados como precaução 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 certo e limpe postgresql.auto.conf:

    sudo mv data-RESTORED data
    sudo sed -i 's|data-RESTORED|data|' data/postgresql.auto.conf
  5. Inicie o servidor de banco de dados:

    sudo alloydb database-server start

Agora é possível se conectar ao banco de dados usando o psql e confirmar se os dados foram restaurados conforme o esperado. Se for o caso, exclua a cópia data-OLD do subdiretório data que você criou antes.

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 Restauração.