pgBackRest é uma solução confiável de backup e restauração para PostgreSQL que se adapta perfeitamente aos maiores bancos de dados e cargas de trabalho.
pgBackRest v2.54.0 é a versão estável atual. As notas de lançamento estão na página Lançamentos.
Encontre-nos no GitHub e dê-nos uma estrela se gostar do pgBackRest!
A compactação geralmente é o gargalo durante as operações de backup, portanto o pgBackRest resolve esse problema com processamento paralelo e algoritmos de compactação mais eficientes, como lz4 e zstd.
Um protocolo personalizado permite que o pgBackRest faça backup, restaure e arquive local ou remotamente via TLS/SSH com configuração mínima. Uma interface para consultar o PostgreSQL também é fornecida através da camada de protocolo para que o acesso remoto ao PostgreSQL nunca seja necessário, o que aumenta a segurança.
Vários repositórios permitem, por exemplo, um repositório local com retenção mínima para restaurações rápidas e um repositório remoto com retenção mais longa para redundância e acesso em toda a empresa.
Backups completos, diferenciais e incrementais são suportados. O pgBackRest não é suscetível aos problemas de resolução de tempo do rsync, tornando os backups diferenciais e incrementais seguros sem a necessidade de soma de verificação de cada arquivo. Os backups em nível de bloco economizam espaço copiando apenas as partes dos arquivos que foram alteradas.
As políticas de retenção podem ser definidas para backups completos e diferenciais para criar cobertura para qualquer período de tempo. O arquivo WAL pode ser mantido para todos os backups ou estritamente para os backups mais recentes. Neste último caso, o WAL necessário para tornar consistentes os backups mais antigos será mantido no arquivo.
As somas de verificação são calculadas para cada arquivo no backup e verificadas novamente durante uma restauração ou verificação. Depois que um backup termina de copiar os arquivos, ele espera até que cada segmento WAL necessário para tornar o backup consistente chegue ao repositório.
Os backups no repositório podem ser armazenados no mesmo formato de um cluster PostgreSQL padrão (incluindo espaços de tabela). Se a compactação estiver desabilitada e os links físicos estiverem habilitados, é possível fazer um snapshot de um backup no repositório e abrir um cluster PostgreSQL diretamente no snapshot. Isso é vantajoso para bancos de dados em escala de terabytes que demoram muito para serem restaurados da maneira tradicional.
Todas as operações utilizam fsync em nível de arquivo e diretório para garantir durabilidade.
Se as somas de verificação de página estiverem habilitadas, o pgBackRest validará as somas de verificação para cada arquivo copiado durante um backup. Todas as somas de verificação de páginas são validadas durante um backup completo e as somas de verificação nos arquivos que foram alterados são validadas durante backups diferenciais e incrementais.
As falhas de validação não interrompem o processo de backup, mas avisos com detalhes de exatamente quais páginas falharam na validação são enviados para o console e para o log do arquivo.
Esse recurso permite que a corrupção no nível da página seja detectada antecipadamente, antes que os backups que contêm cópias válidas dos dados expirem.
Um backup interrompido pode ser retomado do ponto onde foi interrompido. Os arquivos que já foram copiados são comparados com as somas de verificação no manifesto para garantir a integridade. Como esta operação pode ocorrer inteiramente no host do repositório, ela reduz a carga no host PostgreSQL e economiza tempo, pois o cálculo da soma de verificação é mais rápido do que compactar e retransmitir dados.
Os cálculos de compactação e soma de verificação são executados em fluxo enquanto os arquivos estão sendo copiados para o repositório, esteja o repositório localizado localmente ou remotamente.
Se o repositório estiver em um host de repositório, a compactação será realizada no host PostgreSQL e os arquivos serão transmitidos em um formato compactado e simplesmente armazenados no host do repositório. Quando a compactação está desativada, um nível mais baixo de compactação é utilizado para fazer uso eficiente da largura de banda disponível e, ao mesmo tempo, manter o custo da CPU no mínimo.
O manifesto contém somas de verificação para cada arquivo no backup para que durante uma restauração seja possível usar essas somas de verificação para acelerar enormemente o processamento. Em uma restauração delta, todos os arquivos não presentes no backup são primeiro removidos e, em seguida, são geradas somas de verificação para os arquivos restantes. Os arquivos que correspondem ao backup são deixados no lugar e o restante dos arquivos é restaurado normalmente. O processamento paralelo pode levar a uma redução drástica nos tempos de restauração.
Comandos dedicados estão incluídos para enviar o WAL para o arquivo e obter o WAL do arquivo. Ambos os comandos suportam paralelismo para acelerar o processamento e são executados de forma assíncrona para fornecer o tempo de resposta mais rápido possível ao PostgreSQL.
WAL push detecta automaticamente segmentos WAL que são enviados várias vezes e desduplica quando o segmento é idêntico, caso contrário, um erro será gerado. O push WAL assíncrono permite que a transferência seja descarregada para outro processo que compacta segmentos WAL em paralelo para obter rendimento máximo. Este pode ser um recurso crítico para bancos de dados com volume de gravação extremamente alto.
A obtenção assíncrona do WAL mantém uma fila local de segmentos WAL que são descompactados e prontos para reprodução. Isso reduz o tempo necessário para fornecer WAL ao PostgreSQL, o que maximiza a velocidade de reprodução. Conexões e armazenamento de maior latência (como S3) são os que mais se beneficiam.
Os comandos push e get garantem que o banco de dados e o repositório correspondam, comparando versões do PostgreSQL e identificadores do sistema. Isso praticamente elimina a possibilidade de configuração incorreta do local do arquivo WAL.
Os tablespaces são totalmente suportados e, na restauração, os tablespaces podem ser remapeados para qualquer local. Também é possível remapear todos os espaços de tabela para um local com um único comando, o que é útil para restaurações de desenvolvimento.
Links de arquivos e diretórios são suportados para qualquer arquivo ou diretório no cluster PostgreSQL. Ao restaurar, é possível restaurar todos os links para seus locais originais, remapear alguns ou todos os links ou restaurar alguns ou todos os links como arquivos ou diretórios normais dentro do diretório do cluster.
Os repositórios pgBackRest podem estar localizados em armazenamentos de objetos compatíveis com S3, Azure e GCS para permitir capacidade e retenção virtualmente ilimitadas.
pgBackRest pode criptografar o repositório para proteger backups onde quer que estejam armazenados.
pgBackRest inclui suporte para dez versões do PostgreSQL, as cinco versões suportadas e as últimas cinco versões EOL. Isso permite tempo suficiente para atualizar para uma versão compatível.
O pgBackRest se esforça para ser fácil de configurar e operar:
Guias do usuário para vários sistemas operacionais e versões do PostgreSQL.
Referência de comando para operações de linha de comando.
Referência de configuração para criar configurações de pgBackRest.
A documentação para v1 pode ser encontrada aqui. Nenhum lançamento adicional está planejado para v1 porque v2 é compatível com versões anteriores com opções e repositórios v1.
Contribuições para o pgBackRest são sempre bem-vindas! Consulte nossas Diretrizes de Contribuição para obter detalhes sobre como contribuir com recursos, melhorias ou problemas.
pgBackRest é totalmente gratuito e de código aberto sob a licença do MIT. Você pode usá-lo para fins pessoais ou comerciais sem quaisquer restrições. Os relatórios de bugs são levados muito a sério e serão resolvidos o mais rápido possível.
Criar uma política robusta de recuperação de desastres com estratégias adequadas de replicação e backup pode ser uma tarefa muito complexa e assustadora. Você pode descobrir que precisa de ajuda durante a fase de arquitetura e de suporte contínuo para garantir que sua empresa continue funcionando perfeitamente.
Crunchy Data fornece versões empacotadas de pgBackRest para os principais sistemas operacionais e suporte comercial especializado de ciclo de vida completo para pgBackRest e tudo relacionado a PostgreSQL. A Crunchy Data está comprometida em fornecer soluções de código aberto sem dependência de fornecedor, garantindo que a compatibilidade cruzada com a versão comunitária do pgBackRest seja sempre rigorosamente mantida.
Visite Dados Crunchy para obter mais informações.
O principal reconhecimento vai para Stephen Frost por todos os seus valiosos conselhos e críticas durante o desenvolvimento do pgBackRest.
A Crunchy Data contribuiu com tempo e recursos significativos para o pgBackRest e continua a apoiar ativamente o desenvolvimento. O Resonate também contribuiu para o desenvolvimento do pgBackRest e permitiu que versões anteriores (mas bem testadas) fossem instaladas como sua solução primária de backup do PostgreSQL.
Gráfico de poltrona de Sandor Szabo.