O fluxo de trabalho a seguir explica as etapas de clonagem:
- Configure o arquivo
pgbackrest.conf
para acessar o backup do Cloud Storage. - Use comandos
pgBackRest
para verificar se é possível acessar os backups de origem. - Use comandos
pgBackRest
para restaurar o backup no servidor de destino.
Antes de começar
- Acesso ao caminho completo do bucket do Cloud Storage em que o backup do cluster de banco de dados de origem está localizado. Esse é o mesmo caminho usado quando você criou o recurso
BackupPlan
para o cluster do banco de dados de origem. - Um cluster de banco de dados de destino do AlloyDB Omni de servidor único é criado. Para mais informações sobre como instalar o AlloyDB Omni no Kubernetes, consulte Instalar o AlloyDB Omni.
- Verifique se você fez login no banco de dados como o usuário
postgres
.
Configurar o arquivo pgBackRest
no servidor de destino
Configure o arquivo pgBackRest
para permitir que o cluster de banco de dados de destino acesse o bucket do Cloud Storage em que os backups de origem estão localizados.
No servidor de destino, navegue até o diretório
alloydb-data
.Crie um arquivo de configuração
pgBackRest
para acessar os backups armazenados no Cloud Storage:$ cat << EOF > /backup/pgbackrest.conf [db] pg1-path=/mnt/disks/pgsql/data-restored pg1-socket-path=/tmp pg1-user=pgbackrest [global] log-path=/obs/pgbackrest log-level-file=info repo1-type=gcs repo1-gcs-bucket=GCS_SOURCE_BACKUP_BUCKET_NAME repo1-path=GCS_SOURCE_BACKUP_BUCKET_PATH repo1-storage-ca-file=/etc/ssl/certs/ca-certificates.crt repo1-retention-full=9999999 repo1-gcs-key-type=auto
Substitua:
- GCS_SOURCE_BACKUP_BUCKET_NAME: o nome do bucket
pgBackRest
do Cloud Storage criado no cluster de banco de dados de origem. Esse não é o URL completo do bucket. Não coloque o prefixogs://
no nome do bucket. - GCS_SOURCE_BACKUP_BUCKET_PATH: o caminho do diretório em que o operador do
AlloyDB Omni grava backups, dentro dobucket do Cloud Storagege para o cluster de banco de dados de origem. O caminho
precisa ser absoluto e começar com
/
.
O
repo1-gcs-key-type
é definido comoauto
para usar a conta de serviço da instância. Para mais informações sobre outras opções, consulte Opção de tipo de chave do repositório do GCS.- GCS_SOURCE_BACKUP_BUCKET_NAME: o nome do bucket
Verificar os backups de origem no servidor de destino
Faça login no servidor de destino e execute comandos pgBackRest
para verificar se os backups do cluster de banco de dados de origem estão acessíveis no servidor de destino:
Docker
sudo docker exec CONTAINER_NAME pgbackrest --config-path=/mnt/disks/pgsql --stanza=db --repo=1 info
Podman
sudo podman exec CONTAINER_NAME pgbackrest --config-path=/mnt/disks/pgsql --stanza=db --repo=1 info
Substitua CONTAINER_NAME
pelo nome de um novo contêiner do AlloyDB Omni. Por exemplo, my-omni-1
.
Confira um exemplo de resposta:
stanza: db
status: ok
cipher: none
db (current)
wal archive min/max (15): 000000010000000000000002/00000001000000000000000D
full backup: 20240213-231400F
timestamp start/stop: 2024-02-13 23:14:00+00 / 2024-02-13 23:17:14+00
wal start/stop: 000000010000000000000003 / 000000010000000000000003
database size: 38.7MB, database backup size: 38.7MB
repo1: backup set size: 4.6MB, backup size: 4.6MB
incr backup: 20240213-231400F_20240214-000001I
timestamp start/stop: 2024-02-14 00:00:01+00 / 2024-02-14 00:00:05+00
wal start/stop: 00000001000000000000000D / 00000001000000000000000D
database size: 38.7MB, database backup size: 488.3KB
repo1: backup set size: 4.6MB, backup size: 84.2KB
backup reference list: 20240213-231400F
Os carimbos de data/hora na resposta são usados para restaurar o backup completo ou de um ponto no tempo da janela de recuperação.
Restaurar o backup no servidor de destino
Depois de identificar o backup ou um momento específico para restauração, execute os comandos
pgBackRest
no servidor de destino. Para mais informações
sobre esses comandos, consulte Comando
Restore.
Confira alguns exemplos de comandos de restauração do pgBackRest
:
Restaurar a partir de um backup
pgbackrest --config-path=/mnt/disks/pgsql --stanza=db --repo=1 restore --set=20240213-231400F --type=immediate --target-action=promote --delta --link-all --log-level-console=info
Restaurar de um momento
pgbackrest --config-path=/mnt/disks/pgsql --stanza=db --repo=1 restore --target="2024-01-22 11:27:22" --type=time --target-action=promote --delta --link-all --log-level-console=info
Copiar dados para o servidor de destino
Depois que o comando de restauração for concluído, copie os dados do diretório temporário /mnt/disks/pgsql/data-restored
para o diretório /alloydb-data/data
atual.
- No servidor de destino, interrompa o serviço de banco de dados:
Docker
docker stop CONTAINER_NAME
Podman
podman stop CONTAINER_NAME
Renomeie o diretório de dados atual para outro nome como prática recomendada:
mv ~/alloydb-data/data ~/alloydb-data/data-old
Renomeie o diretório temporário
data-restored
para o diretório de dados atual:mv ~/alloydb-data/data-restored ~/alloydb-data/data
Atualize o valor
pg1-path
no arquivopostgresql.auto.conf
para carregar os dados restaurados:
vim ~/alloydb-data/data/postgresql.auto.conf
# Verify postgresql.auto.conf.
# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.
# Recovery settings generated by pgBackRest restore on 2024-03-13 20:47:11
restore_command = 'pgbackrest --config-path=/mnt/disks/pgsql --pg1-path=/mnt/disks/pgsql/data --repo=1 --stanza=db archive-get %f "%p"'
recovery_target = 'immediate'
recovery_target_action = 'promote'
recovery_target_timeline = 'current'
No servidor de destino, inicie o serviço de banco de dados:
Docker
docker start CONTAINER_NAME
Podman
podman start CONTAINER_NAME
Depois que o serviço de banco de dados for iniciado, você poderá se conectar à instância principal e executar consultas para verificar se os dados foram restaurados do backup. Para mais informações, consulte Conectar-se ao AlloyDB Omni em um único servidor.