1. Introdução
Este codelab mostra como configurar o pgBackRest para fazer backup e restaurar uma implantação RPM do AlloyDB Omni usando o armazenamento de objetos compatível com S3.
Observação:neste codelab, você implanta um binário independente do MinIO na VM para atuar como um endpoint de armazenamento local e leve compatível com o S3 para fins de tutorial e teste. Para cargas de trabalho de produção, sempre use uma solução de armazenamento compatível com S3 ou armazenamento de objetos na nuvem que seja compatível e tenha manutenção ativa.
Pré-requisitos
- Acesso a um projeto do Google Cloud e ao Cloud Shell no Cloud Console.
- SDK Google Cloud (
gcloud) instalado e configurado.
O que você vai aprender
- Como configurar uma VM do Compute Engine para RPM do AlloyDB Omni.
- Como configurar um servidor local de armazenamento de objetos compatível com S3 na VM.
- Como configurar o pgBackRest para usar o armazenamento de objetos compatível com S3 como um repositório de backup.
- Como realizar, listar e verificar backups.
- Como restaurar dados de um backup.
O que é necessário
- Receba um link de URL para os RPMs do AlloyDB Omni. Os links são enviados para seu e-mail, que inclui o servidor de URL do repositório. Inicialize a seguinte variável de ambiente para manter o URL pronto para uso durante o codelab.
export ALLOYDB_OMNI_REPOSITORY_URL="..." - Um terminal em funcionamento com acesso ao Google Cloud. Você pode usar o Cloud Shell para essa finalidade.
2. Configuração e requisitos
Configuração do projeto
Criar um projeto do Google Cloud
- No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto na nuvem do Google Cloud.
- Verifique se o faturamento está ativado para seu projeto do Cloud. Saiba como verificar se o faturamento está ativado em um projeto.
Inicie o Cloud Shell
Embora seja possível operar o Google Cloud remotamente em um laptop, neste codelab você vai usar o Google Cloud Shell, um ambiente de linha de comando executado na nuvem.

- Abra o console do Google Cloud e clique no ícone do Cloud Shell na barra de ferramentas superior à direita.Também é possível abrir o Cloud Shell de uma das seguintes maneiras:
- Se você estiver usando o console do Google Cloud, pressione G e depois S.
- Clique neste link.
Normalmente, leva alguns instantes para provisionar e se conectar ao ambiente. Quando essa operação for concluída, você verá algo semelhante a isto:
{: width="624"}
3. Criar a VM do Compute Engine
Nesta seção, você vai criar uma única máquina virtual (VM) do Compute Engine (GCE) usando a ferramenta de linha de comando gcloud. Você usa uma imagem do Rocky Linux 9, que é totalmente compatível com os RPMs do AlloyDB Omni.
- Defina variáveis de ambiente para o ID do projeto, o nome da VM, o tipo de máquina, a zona e a região.
export PROJECT="your-project-id" export INSTANCE_NAME="alloydb-omni-pgbackrest" export MACHINE_TYPE="e2-standard-4" export ZONE="us-central1-c" export REGION="us-central1" - Faça login com o usuário da sua conta do Google Cloud e configure o projeto padrão.
gcloud auth login gcloud config set project $PROJECT - Crie uma regra de firewall para permitir conexões SSH com sua VM.
gcloud compute firewall-rules create allow-ssh-alloydb-omni \ --project=$PROJECT \ --direction=INGRESS \ --action=allow \ --rules=tcp:22 \ --source-ranges="0.0.0.0/0" - Como a VM é criada sem um endereço IP público, configure um Cloud Router e um gateway do Cloud NAT para permitir que a VM acesse repositórios de pacotes externos e faça o download do software necessário.
gcloud compute routers create alloydb-omni-router \ --project=$PROJECT \ --network=default \ --region=$REGION gcloud compute routers nats create alloydb-omni-nat \ --project=$PROJECT \ --router=alloydb-omni-router \ --region=$REGION \ --nat-all-subnet-ip-ranges \ --auto-allocate-nat-external-ips - Verifique se a rede VPC tem uma rota de gateway de Internet padrão válida. Em alguns ambientes compartilhados ou de teste, as rotas padrão são removidas ocasionalmente por scripts de limpeza. Essa rota é necessária para que o Cloud NAT encaminhe o tráfego de saída para a Internet.
gcloud compute routes create default-internet-route \ --project=$PROJECT \ --network=default \ --destination-range=0.0.0.0/0 \ --next-hop-gateway=default-internet-gateway - Crie a instância de VM do Compute Engine com o Rocky Linux 9 e um disco permanente equilibrado de 20 GB. Para aumentar a segurança, use a flag
--no-addresspara que a VM não receba um endereço IP público.gcloud compute instances create $INSTANCE_NAME \ --project=$PROJECT \ --zone=$ZONE \ --machine-type=$MACHINE_TYPE \ --image-family=rocky-linux-9 \ --image-project=rocky-linux-cloud \ --boot-disk-size=20GB \ --boot-disk-type=pd-balanced \ --no-address - Depois que a VM for criada, verifique o status dela.
gcloud compute instances list --filter="name=$INSTANCE_NAME" --project=$PROJECT
4. Configurar o armazenamento de objetos compatível com S3
Nesta seção, você se conecta à VM, prepara o ambiente e configura um servidor de armazenamento de objetos local compatível com S3 (minio) e um cliente S3 (mc) para hospedar o bucket de backup.
- Conecte-se à VM por SSH usando o Identity-Aware Proxy (IAP). Como a VM não tem um endereço IP público, o
gcloudvai encapsular automaticamente a conexão SSH pelo IAP.gcloud compute ssh $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --tunnel-through-iap - Instale o pacote
policycoreutils-python-utilspara que a política do SELinux possa ser configurada mais tarde, se necessário.sudo dnf install -y policycoreutils-python-utils - Faça o download do binário do servidor compatível com S3 (
minio).curl -L -o minio \ https://github.com/minio/minio/releases/download/RELEASE.2024-05-10T01-41-38Z/minio.linux-amd64.RELEASE.2024-05-10T01-41-38Z chmod +x minio sudo mv minio /usr/local/bin/ - Crie um diretório de dados para o servidor de armazenamento de objetos.
sudo mkdir -p /var/lib/s3-storage/data - Inicie o servidor compatível com S3 em segundo plano com credenciais de exemplo. A chave secreta precisa ter pelo menos oito caracteres.
export MINIO_ROOT_USER="s3admin" export MINIO_ROOT_PASSWORD="s3password" nohup sudo env MINIO_ROOT_USER="$MINIO_ROOT_USER" \ MINIO_ROOT_PASSWORD="$MINIO_ROOT_PASSWORD" \ /usr/local/bin/minio server /var/lib/s3-storage/data \ --console-address ":9001" \ > s3-server.log 2>&1 & - Verifique se o servidor compatível com S3 está em execução.
ps aux | grep minio - Faça o download e instale o cliente do S3 (
mc) para gerenciar buckets.curl -L -o mc \ https://github.com/minio/mc/releases/download/RELEASE.2024-05-09T17-04-24Z/mc.linux-amd64.RELEASE.2024-05-09T17-04-24Z chmod +x mc sudo mv mc /usr/local/bin/ - Configure o alias do cliente do S3 (
s3repo) e crie um bucket chamadoalloydb-backups.mc alias set s3repo http://localhost:9000 s3admin s3password mc mb s3repo/alloydb-backups
5. Instalar o AlloyDB Omni
Nesta seção, você vai instalar e configurar o AlloyDB Omni.
- Defina variáveis de ambiente na VM para o diretório de dados, o URL do repositório do AlloyDB Omni e uma senha forte para o usuário administrador
postgresdo PostgreSQL. Substitua o URL pelo que você recebeu no formulário de inscrição. Observação:o envio de senhas usando variáveis de ambiente na linha de comando (por exemplo,export PGDATA="/var/lib/alloydbomni" export ALLOYDB_OMNI_REPOSITORY_URL="..." export PGPASSWORD="YourStrongPassword123!"PGPASSWORD=$PGPASSWORD) é usado aqui para simplificar o codelab, mas pode expor a senha em listas de processos. Em produção, use métodos mais seguros, como um arquivo.pgpassou um gerenciador de secrets. - Crie o diretório de dados em que o AlloyDB Omni vai armazenar os arquivos de banco de dados.
sudo mkdir -p $PGDATA - Configure o repositório YUM na VM criando o arquivo de configuração do repositório.
sudo tee /etc/yum.repos.d/alloydbomni.repo << EOF [alloydbomni] name=alloydbomni baseurl=$ALLOYDB_OMNI_REPOSITORY_URL enabled=1 repo_gpgcheck=0 gpgcheck=1 gpgkey=https://dl.google.com/linux/linux_signing_key.pub EOF - Atualize o cache do YUM.
sudo yum makecache - Instale a versão 18 do pacote RPM do AlloyDB Omni.
sudo dnf install -y alloydbomni18 - Inicialize a instância de banco de dados do AlloyDB Omni.
sudo PGPASSWORD=$PGPASSWORD PGDATA=$PGDATA /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb - Desative temporariamente o modo de imposição do SELinux para facilitar a configuração, de acordo com as práticas padrão do codelab.
sudo setenforce 0 - Prepare a instância de banco de dados do AlloyDB Omni.
sudo PGPASSWORD=$PGPASSWORD PGDATA=$PGDATA /usr/lib/postgresql/18/bin/alloydbomni18-setup preparedb - Ative e inicie o serviço
systemddo AlloyDB Omni.sudo systemctl enable alloydbomni18 sudo systemctl start alloydbomni18 - Verifique se o serviço do AlloyDB Omni está ativo e em execução.
sudo systemctl status alloydbomni18
6. Configurar o pgBackRest
Nesta seção, você vai instalar o pgBackRest no repositório comum do AlloyDB Omni, configurar o /etc/pgbackrest/pgbackrest.conf para usar seu bucket de armazenamento de objetos compatível com S3 como um repositório de backup e ativar o arquivamento de WAL no AlloyDB Omni.
- Defina uma variável de ambiente na VM para o URL do repositório comum do AlloyDB Omni. Substitua o URL pelo que você recebeu no formulário de inscrição.
export ALLOYDB_OMNI_COMMON_REPOSITORY_URL="..." - Configure o repositório YUM do pgBackRest e instale
pgbackrest-2.58.0.sudo tee /etc/yum.repos.d/pgbackrest.repo <<EOF [pgbackrest] name=Google Alloydb Omni Orchestrator baseurl=$ALLOYDB_OMNI_COMMON_REPOSITORY_URL enabled=1 repo_gpgcheck=0 gpgcheck=0 gpgkey=https://dl.google.com/linux/linux_signing_key.pub EOF sudo dnf install -y pgbackrest-2.58.0 - Crie os diretórios de spool e de registros para o pgBackRest e atribua a propriedade ao usuário
postgres.sudo mkdir -p /var/log/pgbackrest sudo mkdir -p /var/lib/pgbackrest sudo chown -R postgres:postgres /var/log/pgbackrest sudo chown -R postgres:postgres /var/lib/pgbackrest - Crie
/etc/pgbackrest/pgbackrest.confe configure permissões de arquivo restritas.sudo mkdir -p /etc/pgbackrest/conf.d sudo tee /etc/pgbackrest/pgbackrest.conf <<EOF [global] spool-path=/var/lib/pgbackrest lock-path=/var/lib/pgbackrest # S3 Repository details repo1-type=s3 repo1-s3-endpoint=http://localhost:9000 repo1-s3-bucket=alloydb-backups repo1-s3-key=s3admin repo1-s3-key-secret=s3password repo1-s3-region=us-east-1 repo1-s3-uri-style=path repo1-path=/pgbackrest # Retention policy repo1-retention-full=3 repo1-retention-full-type=count repo1-retention-diff=16 # Force immediate checkpoint during backup start start-fast=y # Logging log-path=/var/log/pgbackrest log-level-console=info log-level-file=info # Compression compress-type=zst # Asynchronous WAL archiving archive-async=y archive-push-queue-max=1024MB archive-get-queue-max=256MB archive-missing-retry=y [global:archive-push] process-max=2 [global:archive-get] process-max=2 [omni] pg1-user=postgres pg1-socket-path=/tmp pg1-path=$PGDATA EOF sudo chown postgres:postgres /etc/pgbackrest/pgbackrest.conf sudo chmod 640 /etc/pgbackrest/pgbackrest.conf - Inicialize a estrofe pgBackRest como o usuário
postgres. Confirme sesudo -u postgres pgbackrest --stanza=omni stanza-createstanza-create command end: completed successfullyaparece na saída. - Configure os parâmetros de arquivamento do AlloyDB Omni usando
psql.sudo -u postgres /usr/lib/postgresql/18/bin/psql \ -c "ALTER SYSTEM SET archive_mode = 'on';" \ -c "ALTER SYSTEM SET archive_command = 'pgbackrest --stanza=omni archive-push %p';" \ -c "ALTER SYSTEM SET wal_level = 'replica';" \ -c "ALTER SYSTEM SET max_wal_senders = 10;" - Reinicie o serviço do AlloyDB Omni para aplicar as mudanças de arquivamento.
sudo systemctl restart alloydbomni18 - Verifique a integridade e a conectividade da configuração do pgBackRest.
Confirme sesudo -u postgres pgbackrest --stanza=omni checkcheck command end: completed successfullyaparece na saída.
7. Fazer backup
Nesta seção, você vai usar o pgBackRest para fazer um backup completo e um backup diferencial do seu banco de dados do AlloyDB Omni para um armazenamento de objetos compatível com S3.
- Acione um backup completo usando
pgbackrest.sudo -u postgres pgbackrest \ --stanza=omni \ --type=full backup - Acione um backup diferencial usando
pgbackrest. Observação:outros tipos de backup compatíveis incluemsudo -u postgres pgbackrest \ --stanza=omni \ --type=diff backupincr(incremental).
8. Listar e verificar backups
Nesta seção, você vai listar os backups e verificar se eles foram concluídos com êxito.
- Liste os backups usando o comando
pgbackrest info. Confirme se a saída mostrasudo -u postgres pgbackrest \ --stanza=omni infostatus: okjunto com as informações de backup para cada comando executado:- Backup completo :
full backup:(por exemplo,F 20260908-093545F) - Backup diferencial :
diff backup:(por exemplo,F_ D 20260908-093545F_20260908-094016D)
- Backup completo :
- Verifique os arquivos de backup armazenados no bucket usando o cliente S3 (
mc). Você vai vermc ls s3repo/alloydb-backups/pgbackrest/backup,archiveestanza.infona saída.
9. Restaurar dados do backup
Nesta seção, você vai interromper o serviço de banco de dados do AlloyDB Omni e restaurar os dados de um backup específico usando pgbackrest.
Atenção:a restauração interrompe o banco de dados e substitui todos os dados dele.
- Defina uma variável de ambiente para o ID do backup que você quer restaurar. Substitua o valor pelo ID do backup mostrado na saída
pgbackrest info.export BACKUPID="20260908-093545F" - Pare o serviço do AlloyDB Omni e verifique se ele está inativo.
Confirme se a saída mostrasudo systemctl stop alloydbomni18 sudo systemctl status alloydbomni18Active: inactive. - Execute
pgbackrest restorecom a opção--deltapara restaurar o banco de dados do backup selecionado. Confirme sesudo -u postgres pgbackrest \ --stanza=omni \ --set=$BACKUPID \ --delta restorerestore command end: completed successfullyaparece na saída. - Inicie o serviço do AlloyDB Omni e verifique se ele está ativo e em execução.
Confirme se a saída mostrasudo systemctl start alloydbomni18 sudo systemctl status alloydbomni18Active: active (running).
10. Revisão dos dados e pesquisa
Depois de concluir o codelab, limpe os recursos do Google Cloud para evitar cobranças indesejadas.
- Desconecte-se da sessão SSH na VM para voltar ao terminal local do Cloud Shell.
exit - Exclua a instância de VM do Compute Engine.
gcloud compute instances delete $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --quiet - Exclua a regra de firewall criada para acesso SSH.
gcloud compute firewall-rules delete allow-ssh-alloydb-omni --project=$PROJECT --quiet - Exclua o gateway do Cloud NAT e o Cloud Router.
gcloud compute routers nats delete alloydb-omni-nat --router=alloydb-omni-router --region=$REGION --project=$PROJECT --quiet gcloud compute routers delete alloydb-omni-router --region=$REGION --project=$PROJECT --quiet - Exclua a rota personalizada.
gcloud compute routes delete default-internet-route --project=$PROJECT --quiet
11. Parabéns
Parabéns por concluir o codelab! Você configurou o pgBackRest para fazer backup e restaurar uma implantação RPM do AlloyDB Omni usando o armazenamento de objetos compatível com S3.
O que vimos
- Como configurar uma VM do Compute Engine para RPM do AlloyDB Omni.
- Como configurar um bucket de armazenamento de objetos compatível com S3.
- Como configurar o pgBackRest com um repositório compatível com S3.
- Como realizar, listar e verificar backups completos e diferenciais.
- Como restaurar dados de um backup usando o pgBackRest.
Para mais informações, consulte a Visão geral do AlloyDB Omni.