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.

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. 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 trabalhar com o AlloyDB Omni, consulte Configurar o pgBackRest para o AlloyDB Omni.

Para informações baseadas no Kubernetes, consulte Fazer backup e restaurar no Kubernetes.

Antes de começar

Antes de restaurar um cluster do AlloyDB Omni, confira se você tem:

  • Configure o pgBackRest para sua instância do AlloyDB Omni.

  • Espaço em disco suficiente no sistema de arquivos de destino para armazenar o cluster de banco de dados AlloyDB Omni restaurado.

  • Mesma versão principal do AlloyDB Omni usada para o contêiner de restauração como o contêiner de origem original.

    Para verificar a versão do PostgreSQL, execute o seguinte comando:

    Docker

    docker exec -u postgres CONTAINER_NAME psql -c "SELECT version();"
    

    Docker

    docker exec -u postgres CONTAINER_NAME psql -c "SELECT version();"
    

    Podman

    podman exec -u postgres CONTAINER_NAME psql -c "SELECT version();"
    

    Podman

    podman exec -u postgres CONTAINER_NAME psql -c "SELECT version();"
    

    Substitua a seguinte variável:

    • CONTAINER_NAME: nome que você usou para o contêiner. Por exemplo, my-omni-1.

    Para verificar a versão do pgBackRest, execute o seguinte comando:

    Docker

    docker exec -u postgres CONTAINER_NAME pgbackrest version
    

    Docker

    docker exec -u postgres CONTAINER_NAME pgbackrest version
    

    Podman

    podman exec -u postgres CONTAINER_NAME pgbackrest version
    

    Podman

    podman exec -u postgres CONTAINER_NAME pgbackrest version
    

    Substitua a seguinte variável:

    • CONTAINER_NAME: nome que você usou para o contêiner. Por exemplo, my-omni-1.

    Se o contêiner de destino tiver uma versão diferente do PostgreSQL, do pgBackRest ou de ambos, será necessário criar um novo contêiner de destino com uma versão correspondente. Se isso não for possível, use um método alternativo, como os utilitários pg_dump ou pg_dumpall incluídos no PostgreSQL, para copiar seus bancos de dados entre versões.

Interromper o contêiner do AlloyDB Omni

Para simular que o cluster de banco de dados do AlloyDB Omni não está disponível, pare o contêiner.

Docker

docker stop CONTAINER_NAME
docker rm CONTAINER_NAME

Docker

docker stop CONTAINER_NAME
docker rm CONTAINER_NAME

Podman

podman stop CONTAINER_NAME
podman rm CONTAINER_NAME

Podman

podman stop CONTAINER_NAME
podman rm CONTAINER_NAME

Substitua a seguinte variável:

  • CONTAINER_NAME: nome que você usou para o contêiner. Por exemplo, my-omni-1.

Criar um contêiner ocioso do AlloyDB Omni

Docker

docker run -d --name CONTAINER_NAME \
-v DATA_DIR:/var/lib/postgresql/data \
-v BACKUP_DIR:/var/lib/postgresql/backups \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:latest sleep infinity

Docker

docker run -d --name CONTAINER_NAME \
-v DATA_DIR:/var/lib/postgresql/data \
-v BACKUP_DIR:/var/lib/postgresql/backups \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:latest sleep infinity

Podman

podman run -d --name CONTAINER_NAME \
-v DATA_DIR:/var/lib/postgresql/data \
-v BACKUP_DIR:/var/lib/postgresql/backups \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:latest sleep infinity

Podman

podman run -d --name CONTAINER_NAME \
-v DATA_DIR:/var/lib/postgresql/data \
-v BACKUP_DIR:/var/lib/postgresql/backups \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:latest sleep infinity

Substitua as seguintes variáveis:

  • CONTAINER_NAME: nome que você usou para o contêiner. Por exemplo, my-omni-1.
  • DATA_DIR: caminho do diretório do host em que seus dados são armazenados.
  • BACKUP_DIR: caminho do diretório externo em que os backups são armazenados.
  • HOST_PORT: porta TCP na máquina host em que o contêiner precisa publicar a própria porta 5432. Para usar a porta padrão do PostgreSQL na máquina host, especifique 5432.

Remover o diretório de dados

Para limpar o cluster de banco de dados do AlloyDB Omni, remova o diretório de dados.

Docker

docker exec CONTAINER_NAME sh -c "rm -rf /var/lib/postgresql/data/*"

Docker

docker exec CONTAINER_NAME sh -c "rm -rf /var/lib/postgresql/data/*"

Podman

podman exec CONTAINER_NAME sh -c "rm -rf /var/lib/postgresql/data/*"

Podman

podman exec CONTAINER_NAME sh -c "rm -rf /var/lib/postgresql/data/*"

Substitua a seguinte variável:

  • CONTAINER_NAME: nome que você usou para o contêiner. Por exemplo, my-omni-1.

Validar se os backups estão visíveis

Docker

docker exec -u postgres CONTAINER_NAME pgbackrest \
--config-path=/var/lib/postgresql/backups \
--stanza=STANZA_NAME \
info

Docker

docker exec -u postgres CONTAINER_NAME pgbackrest \
--config-path=/var/lib/postgresql/backups \
--stanza=STANZA_NAME \
info

Podman

podman exec -u postgres CONTAINER_NAME pgbackrest \
--config-path=/var/lib/postgresql/backups \
--stanza=STANZA_NAME \
info

Podman

podman exec -u postgres CONTAINER_NAME pgbackrest \
--config-path=/var/lib/postgresql/backups \
--stanza=STANZA_NAME \
info

Substitua as seguintes variáveis:

  • CONTAINER_NAME: nome que você usou para o contêiner. Por exemplo, my-omni-1.
  • STANZA_NAME: nome da estrofe que você criou. Por exemplo, my-stanza.

Restaurar o backup

Docker

docker exec -u postgres CONTAINER_NAME pgbackrest \
--config-path=/var/lib/postgresql/backups \
--stanza=STANZA_NAME \
restore

Docker

docker exec -u postgres CONTAINER_NAME pgbackrest \
--config-path=/var/lib/postgresql/backups \
--stanza=STANZA_NAME \
restore

Podman

podman exec -u postgres CONTAINER_NAME pgbackrest \
--config-path=/var/lib/postgresql/backups \
--stanza=STANZA_NAME \
restore

Podman

podman exec -u postgres CONTAINER_NAME pgbackrest \
--config-path=/var/lib/postgresql/backups \
--stanza=STANZA_NAME \
restore

Substitua as seguintes variáveis:

  • CONTAINER_NAME: nome que você usou para o contêiner. Por exemplo, my-omni-1.
  • STANZA_NAME: nome da estrofe que você criou. Por exemplo, my-stanza.

Remover o contêiner ocioso do AlloyDB Omni

Docker

docker kill CONTAINER_NAME
docker rm CONTAINER_NAME

Docker

docker kill CONTAINER_NAME
docker rm CONTAINER_NAME

Podman

podman kill CONTAINER_NAME
podman rm CONTAINER_NAME

Podman

podman kill CONTAINER_NAME
podman rm CONTAINER_NAME

Substitua a seguinte variável:

  • CONTAINER_NAME: nome que você usou para o contêiner. Por exemplo, my-omni-1.

Criar contêiner do AlloyDB Omni

Docker

docker run -d --name CONTAINER_NAME \
-v DATA_DIR:/var/lib/postgresql/data \
-v BACKUP_DIR:/var/lib/postgresql/backups \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:latest

Docker

docker run -d --name CONTAINER_NAME \
-v DATA_DIR:/var/lib/postgresql/data \
-v BACKUP_DIR:/var/lib/postgresql/backups \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:latest

Podman

podman run -d --name CONTAINER_NAME \
-v DATA_DIR:/var/lib/postgresql/data \
-v BACKUP_DIR:/var/lib/postgresql/backups \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:latest

Podman

podman run -d --name CONTAINER_NAME \
-v DATA_DIR:/var/lib/postgresql/data \
-v BACKUP_DIR:/var/lib/postgresql/backups \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:latest

Substitua as seguintes variáveis:

  • CONTAINER_NAME: nome que você usou para o contêiner. Por exemplo, my-omni-1.
  • DATA_DIR: caminho do diretório do host em que seus dados são armazenados.
  • BACKUP_DIR: caminho do diretório externo em que os backups são armazenados.
  • HOST_PORT: porta TCP na máquina host em que o contêiner precisa publicar a própria porta 5432. Para usar a porta padrão do PostgreSQL na máquina host, especifique 5432.

Validar se o AlloyDB Omni foi iniciado

Docker

docker logs -f CONTAINER_NAME

Docker

docker logs -f CONTAINER_NAME

Podman

podman logs -f CONTAINER_NAME

Podman

podman logs -f CONTAINER_NAME

Substitua a seguinte variável:

  • CONTAINER_NAME: nome que você usou para o contêiner. Por exemplo, my-omni-1.

Outras opções

O comando restore do pgBackRest é muito flexível, com uma variedade de opções e recursos que podem ser controlados transmitindo diferentes opções de linha de comando. Para conferir um guia completo sobre como fazer restaurações, consulte Restauração.