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.

Consulte o artigo Fazer uma cópia de segurança e restaurar no Kubernetes para obter informações baseadas no Kubernetes.

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 a cópia de segurança que quer restaurar. Para mais informações sobre a instalação do AlloyDB Omni, consulte o artigo Instale o AlloyDB Omni.

  • 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 parâmetros 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 para o qual quer fazer o restauro. Estes repositórios têm nome e são definidos no ficheiro pgbackrest.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 /var/lib/postgresql/data, 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, nomeando um ponto específico no tempo para 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 /var/lib/postgresql/data.

  • 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 para restaurar:

    Docker

    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 o seguinte:

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

    • 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.

    Podman

    podman 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 o seguinte:

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

    • 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 contentor com o seguinte comando:

    Docker

    docker container stop CONTAINER_NAME

    Podman

    podman container stop CONTAINER_NAME
  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 contentor do AlloyDB Omni com o servidor de base de dados:

    Docker

    docker container start CONTAINER_NAME

    Podman

    podman container start CONTAINER_NAME

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.