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.
Para informações baseadas no Kubernetes, consulte o artigo Faça uma cópia de segurança e restaure no Kubernetes.
Antes de começar
Antes de restaurar um cluster do AlloyDB Omni, certifique-se de que tem o seguinte:
Configurou o pgBackRest para a sua instância do AlloyDB Omni.
Espaço em disco suficiente no sistema de ficheiros de destino para armazenar o cluster de base de dados do AlloyDB Omni restaurado.
A mesma versão principal do AlloyDB Omni usada para o contentor de restauro que o contentor de origem original.
Para verificar a sua 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 usou para o seu contentor. Por exemplo,my-omni-1
.
Para verificar a sua 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 usou para o seu contentor. Por exemplo,my-omni-1
.
Se o contentor de destino tiver uma versão diferente do PostgreSQL, do pgBackRest ou de ambos, tem de criar um novo contentor de destino com uma versão correspondente. Se isto não for possível, tem de usar um método alternativo, como as utilidades
pg_dump
oupg_dumpall
incluídas no PostgreSQL, para copiar as bases de dados entre versões.
Pare o contentor do AlloyDB Omni
Para simular que o cluster de base de dados do AlloyDB Omni não está disponível, pare o contentor.
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 usou para o seu contentor. Por exemplo,my-omni-1
.
Crie um contentor do AlloyDB Omni inativo
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 usou para o seu contentor. Por exemplo,my-omni-1
.DATA_DIR
: caminho do diretório do anfitrião onde os seus dados estão armazenados.BACKUP_DIR
: caminho do diretório externo onde as suas cópias de segurança estão armazenadas.HOST_PORT
: porta TCP na máquina anfitriã para a qual o contentor deve publicar a sua própria porta5432
. Para usar a porta predefinida do PostgreSQL também na máquina anfitriã, especifique5432
.
Remova o diretório de dados
Para limpar o cluster de base 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 usou para o seu contentor. Por exemplo,my-omni-1
.
Valide se as suas cópias de segurança 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 usou para o seu contentor. Por exemplo,my-omni-1
.STANZA_NAME
: nome da estrofe que criou. Por exemplo,my-stanza
.
Restaure a sua cópia de segurança
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 usou para o seu contentor. Por exemplo,my-omni-1
.STANZA_NAME
: nome da estrofe que criou. Por exemplo,my-stanza
.
Remova o contentor AlloyDB Omni inativo
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 usou para o seu contentor. Por exemplo,my-omni-1
.
Crie um contentor 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 usou para o seu contentor. Por exemplo,my-omni-1
.DATA_DIR
: caminho do diretório do anfitrião onde os seus dados estão armazenados.BACKUP_DIR
: caminho do diretório externo onde as suas cópias de segurança estão armazenadas.HOST_PORT
: porta TCP na máquina anfitriã para a qual o contentor deve publicar a sua própria porta5432
. Para usar a porta predefinida do PostgreSQL também na máquina anfitriã, especifique5432
.
Valide 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 usou para o seu contentor. Por exemplo,my-omni-1
.
Outras opções
O comando restore
pgBackRest é 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.
Para um guia completo sobre como fazer restauros, consulte o artigo
Restaurar.