Para mais informações sobre o pgBackRest, consulte o guia do usuário.
Antes de começar
Antes de configurar o AlloyDB Omni para trabalhar com o pgBackRest, conclua os seguintes pré-requisitos:
- Instale e execute o AlloyDB Omni em um servidor que você controla.
Configuração básica com backups locais
As etapas nesta seção orientam você na configuração básica do pgBackRest. As configurações básicas não ativam backups programados. Para mais informações, consulte Configurar backups programados.
Como o pgBackRest é um produto de terceiros flexível compatível com o AlloyDB Omni, você pode modificar qualquer uma dessas etapas conforme necessário para suas necessidades e preferências.
Criar um diretório de backup
Para fins de organização, recomendamos que você crie um diretório separado para backups do pgBackRest. Para configurar um novo diretório, siga estas etapas:
Se o AlloyDB Omni estiver em execução, interrompa-o.
sudo systemctl stop alloydbomni18
Crie um diretório de backup.
sudo mkdir -p BACKUP_DIR
Substitua
BACKUP_DIRpelo diretório do host em que os backups serão armazenados.Deixe o diretório de backups legível por
postgres.sudo chown -R postgres:postgres BACKUP_DIR
Configurar backups locais
O pgBackRest cria subdiretórios para cada backup feito e inclui um arquivo de manifesto de texto simples.
O pgBackRest usa o termo stanza para se referir à configuração de um cluster de banco de dados PostgreSQL. O nome da stanza é arbitrário e não precisa corresponder ao servidor host, ao cluster do PostgreSQL ou ao nome do banco de dados. A documentação do pgBackRest sugere nomear a stanza de acordo com a função do cluster.
O repositório é onde os backups são gravados. O pgBackRest oferece suporte à gravação em mais de um repositório em uma determinada stanza. A maioria dos parâmetros de configuração relacionados a repositórios é indexada com um valor numérico. Por exemplo, repo1-. Os parâmetros relacionados aos clusters do PostgreSQL também são indexados de forma independente. Por exemplo, pg1-.
O pgBackRest aproveita um arquivo de configuração, chamado pgbackrest.conf, para armazenar parâmetros globais e específicos da stanza.
Para criar e inicializar um arquivo de configuração para fazer backup do
cluster do AlloyDB Omni, crie o pgbackrest.conf arquivo no
diretório de backups do lado do host criado em
Criar um diretório de backup.
[global]
# Paths (all mandatory):
repo1-path=BACKUP_DIR
spool-path=BACKUP_DIR/spool
lock-path=BACKUP_DIR
# Retention details:
repo1-retention-full=3
repo1-retention-full-type=count
repo1-retention-diff=16
# Force a checkpoint to start backup immediately:
start-fast=y
# Logging parameters:
log-path=BACKUP_DIR
log-level-console=info
log-level-file=info
# Recommended ZSTD compression:
compress-type=zst
# Other performance parameters:
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=DATA_DIR
Alguns parâmetros são obrigatórios, mas outros podem ser ajustados para atender aos seus requisitos específicos, se necessário, como os seguintes:
repo1-path: local do diretório em que os backups são gravados. Recomendamos um local visível para o servidor host e o contêiner.log-path: local do diretório em que os arquivos de registro são gravados. Se você quiser gravar os arquivos de registro em um local separado, não misturado aos backups, ajuste esse parâmetro.repo1-retention-full: número de backups completos a serem mantidos.repo1-retention-full-type: indica se a retenção é medida por contagem ou período (dias).repo1-retention-diff: número de backups diferenciais a serem mantidos.
Outras configurações de parâmetros não críticas, mas recomendadas, que são compatíveis com o AlloyDB Omni no arquivo de configuração incluem o seguinte:
log-level-console: nível de geração de registros gravado na tela (stdout) ao executar comandos pgBackup. É possível ajustar isso para atender às suas necessidades no arquivo de configuração ou substituir esse valor pelo argumento de linha de comando--log-level-console. O padrão éwarn.start-fast: força um ponto de verificação para iniciar os backups rapidamente. O padrão én.archive-async: envia arquivos de segmento WAL de forma assíncrona para melhorar a performance. O padrão én.process-max: número máximo de processos a serem usados para compactação e transferência. Normalmente, esse valor é definido comomax_cpu/4em um cluster principal oumax_cpu/2em um cluster em espera. O padrão é1.compress-type: algoritmo de compactação a ser usado. O padrão égz.
Muitos outros parâmetros de configuração do pgBackRest existem e podem ser ajustados. Esta documentação abrange apenas os parâmetros obrigatórios para a configuração padrão do AlloyDB Omni e algumas configurações de parâmetros recomendadas. Para a lista completa de parâmetros de configuração, consulte a documentação on-line de referência de configuração do pgBackRest.
Depois de configurar o pgBackRest, os repositórios de destino em que os backups são gravados precisam ser inicializados pela criação da stanza, que usa os parâmetros definidos no arquivo de configuração.
Para configurar o banco de dados para backups, siga estas etapas:
Crie a stanza usando o comando
stanza-create.sudo -u postgres pgbackrest \ --config-path=/var/lib/BACKUP_DIR \ --stanza=omni stanza-create
Substitua
BACKUP_DIRpor o diretório de backup criado em Criar um diretório de backup.Configure o banco de dados para backups.
/usr/lib/postgresql/18/bin/psql -h localhost -U postgres \ -c "ALTER SYSTEM SET archive_command='pgbackrest --config-path=/var/lib/BACKUP_DIR --stanza=omni archive-push %p';" \ -c "ALTER SYSTEM SET archive_mode=on;" \ -c "ALTER SYSTEM SET max_wal_senders=10;" \ -c "ALTER SYSTEM SET wal_level=replica;"
Reinicie o AlloyDB Omni.
sudo systemctl restart alloydbomni18
Valide a configuração de backup.
/usr/lib/postgresql/18/bin/psql -h localhost -U postgres \ -c "SELECT name, setting FROM pg_catalog.pg_settings WHERE name IN ('archive_command', 'archive_mode', 'max_wal_senders', 'wal_level') ORDER BY name"Faça uma verificação do pgBackRest.
sudo -u postgres pgbackrest \ --config-path=/var/lib/BACKUP_DIR \ --stanza=omni \ check
Fazer um backup
Faça um backup completo.
sudo -u postgres pgbackrest \ --config-path=/var/lib/BACKUP_DIR \ --stanza=omni \ --type=full backup
Substitua
BACKUP_DIRpor o diretório de backup criado em Criar um diretório de backup.Faça um backup diferencial.
sudo -u postgres pgbackrest \ --config-path=/var/lib/BACKUP_DIR \ --stanza=omni \ --type=diff backup
Relate backups.
sudo -u postgres pgbackrest \ --config-path=/var/lib/BACKUP_DIR \ --stanza=omni \ info
Configurar backups programados
Para configurar backups programados, crie um cron job que execute o comando pgbackrest backup com a frequência necessária. Para mais informações, consulte
Programar um backup.
Configuração personalizada e backups remotos
Depois de ter uma configuração básica funcionando, é possível ajustar o arquivo de configuração de acordo com suas necessidades e preferências usando as opções documentadas na referência de configuração do pgBackRest.
Isso inclui especificar repositórios de backup adicionais localizados em máquinas remotas ou na nuvem. Se você definir vários repositórios, o pgBackRest gravará simultaneamente em todos eles como ação de backup padrão.
Por exemplo, o pgBackRest oferece suporte ao uso de um bucket do Cloud Storage como um repositório de backup, com várias opções de configuração relacionadas. A seção a seguir demonstra uma maneira de usar essas opções.
Um exemplo de configuração usando o Cloud Storage
As etapas nesta seção se baseiam no arquivo de configuração apresentado em Configuração básica com backups locais. Essas modificações no arquivo definem um segundo repositório de backup em um bucket do Cloud Storage, acessado pelo Identity and Access Management (IAM).
O estilo de autenticação automática neste exemplo exige que um cluster do AlloyDB Omni seja executado em uma instância de VM do Compute Engine. Se você não executar o AlloyDB Omni em uma instância de VM do Compute Engine, ainda poderá fazer backup em um bucket do Cloud Storage usando outro método de autenticação, como uma Google Cloud chave de conta de serviço salva no sistema de arquivos local.
Para estender o arquivo de configuração anterior para definir um repositório do pgBackRest baseado no Cloud Storage, siga estas etapas:
Configure as permissões do bucket para permitir que a conta de serviço anexada à instância de VM grave no bucket. Isso requer que o papel de usuário de objetos do Storage do IAM seja definido nessa conta de serviço.
Adicione estas linhas à seção
[global]do arquivopgbackrest.conf:# Cloud Storage access details: repo2-type=gcs repo2-gcs-key-type=auto repo2-storage-verify-tls=n # Cloud Storage bucket and path details: repo2-gcs-bucket=BUCKET_NAME repo2-path=PATH_IN_BUCKET # Cloud Storage backup retention parameters: repo2-retention-full=8 repo2-retention-full-type=countSubstitua a seguinte variável:
BUCKET_NAME: nome do bucket do Cloud Storage em que você quer que o pgBackRest armazene os backups.PATH_IN_BUCKET: caminho do diretório no bucket do Cloud Storage em que você quer que o pgBackRest armazene os backups.
Inicialize o local de backup baseado na nuvem usando o
pgbackrest stanza-createcomando:sudo -u postgres pgbackrest \ --config-path=/var/lib/BACKUP_DIR \ --stanza=omni stanza-create
Substitua
BACKUP_DIRpor o diretório de backup criado em Criar um diretório de backup.
Depois de inicializar o repositório de backup no bucket do Cloud Storage usando o comando pgbackrest stanza-create, o pgBackRest poderá fazer backup em dois locais:
Local no sistema de arquivos local, definido em outro lugar no arquivo de configuração como
repo1-path. Esse é o local padrão quando--reponão é especificado no comandopgbackrest.Bucket do Cloud Storage, definido usando as diretivas de configuração
repo2-gcs-bucketconfiguradas por este exemplo. Para usar o bucket do Cloud Storage, especifique--repo=2no comandopgbackrest.