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 opgbackrest
em contentor como/var/lib/postgresql/data
.Ativou as cópias de segurança contínuas com a configuração do pgBackRest.
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 ficheiropgbackrest.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 ficheiropgbackrest.conf
, a aplicar a este restauro, por exemplo,omni
.TIMESTAMP
: a hora de restauro, por exemplo,2024-02-22 19:50:00
.
No ambiente de destino, pare o contentor com o seguinte comando:
Docker
docker container stop CONTAINER_NAME
Podman
podman container stop CONTAINER_NAME
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.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
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-OLD
có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.