Restaure um cluster do AlloyDB Omni com o pgBackRest

Selecione uma versão da documentação:

Esta página mostra-lhe como restaurar um cluster do AlloyDB Omni através de uma cópia de segurança criada com o pgBackRest, a solução de cópia de segurança de código aberto incluída no contentor Docker do AlloyDB Omni.

Uma vez que o AlloyDB Omni é compatível com o PostgreSQL, os comandos e as técnicas de restauro 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 a configuração do pgBackRest para funcionar com o AlloyDB Omni, consulte o artigo Configure o pgBackRest para o AlloyDB Omni.

Antes de começar

Antes de configurar o AlloyDB Omni para funcionar com o pgBackrest, tem de ter o AlloyDB Omni instalado e em execução num servidor que controla.

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

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

  • Um repositório de cópias de segurança do pgBackRest que contenha, pelo menos, uma cópia de segurança da base de dados AlloyDB Omni de origem.

  • Espaço livre suficiente no disco do servidor de destino para armazenar a base de dados restaurada.

Vista geral

Para fazer um restauro do AlloyDB Omni com o pgBackRest, execute o comando pgbackrest restore. Os argumentos que fornece ao comando variam consoante a sua situação.

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

  • A localização do seu ficheiro pgbackrest.conf.
  • O nome do repositório de cópias de segurança do pgBackRest a partir do qual quer fazer o restauro. Estes repositórios têm nome e são definidos no ficheiro pgbackest.conf.
  • A localização no sistema de ficheiros local para escrever os dados restaurados.
  • Um identificador da cópia de segurança ou do ponto específico no tempo a partir do qual quer fazer a restauração.

Quando executar os comandos pgbackrest restore em contentores, lembre-se de usar caminhos do sistema de ficheiros do ponto de vista do contentor. Por exemplo, o caminho para o diretório de dados do AlloyDB Omni é sempre /mnt/disks/pgsql, independentemente da respetiva localização no servidor de anfitrião. Para mais informações, consulte Uma nota sobre os caminhos do sistema de ficheiros.

Faça um restauro pontual

Este exemplo restaura dados de um repositório pgBackRest, especificando um ponto específico no tempo a partir do qual restaurar. Se tiver definido vários repositórios no ficheiro pgbackrest.conf do ambiente de destino, o pgBackRest escolhe o repositório a partir do qual restaurar com base na disponibilidade, na velocidade esperada e noutros fatores.

O exemplo pressupõe o seguinte:

  • Tem um ficheiro pgbackrest.conf localizado no nível superior do diretório de dados do AlloyDB Omni de destino. Isto torna o ficheiro disponível para o pgbackrest em contentor como /mnt/disks/pgsql/pgbackrest.conf.

  • Ativou as cópias de segurança contínuas com a configuração do pgBackRest.

  1. No ambiente de destino, faça um restauro PITR, especificando uma data/hora a partir da qual 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 o seguinte:

    • STANZA: a secção de configuração, definida pelo ficheiro pgbackrest.conf, a aplicar a este restauro, por exemplo, omni.

    • TIMESTAMP: a hora de restauro. Por exemplo, 2024-02-22 19:50:00.

  2. No ambiente de destino, pare o servidor de base de dados:

    sudo alloydb database-server stop
  3. Mude o nome da subdiretoria data da diretoria de dados, como precaução de segurança:

    cd DATA_DIR
    sudo mv data data-OLD

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

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

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

    sudo alloydb database-server start

Já pode estabelecer ligação à sua base de dados através do psql e confirmar que os dados foram restaurados conforme esperado. Se for o caso, pode eliminar a data-OLDcópia do subdiretório data que criou anteriormente.

Para mais informações sobre a PITR no pgBackRest, consulte o artigo Recuperação num determinado momento. Para mais informações sobre como preparar um ficheiro pgbackrest.conf para utilização com o AlloyDB Omni, consulte o artigo Configure o pgBackRest para o AlloyDB Omni.

Outras opções

O comando pgbackrest restore é muito flexível, com uma variedade de opções e funcionalidades que pode controlar através da transmissão de diferentes opções da linha de comandos. Estas incluem o seguinte:

  • Limitar o restauro apenas aos ficheiros alterados.
  • Restaurar apenas bases de dados selecionadas.

Para um guia completo sobre como fazer restauros no pgBackRest, consulte Restauro.