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
oupg_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 porta5432
. Para usar a porta padrão do PostgreSQL na máquina host, especifique5432
.
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 porta5432
. Para usar a porta padrão do PostgreSQL na máquina host, especifique5432
.
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.