Guia completo: Como fazer backup do PostgreSQL com o pgBackRest

Guia completo: Como fazer backup do PostgreSQL com o pgBackRest

Fazer backups regulares do seu banco de dados é uma prática essencial para garantir a segurança e a integridade dos seus dados. No PostgreSQL, uma ferramenta poderosa e altamente recomendada para realizar backups é o pgBackRest. O pgBackRest é uma solução de backup e restauração de código aberto projetada especificamente para o PostgreSQL, oferecendo recursos avançados e flexibilidade no gerenciamento de backups.

O pgBackRest é uma ferramenta de backup para PostgreSQL conhecida por sua facilidade de instalação e configuração. Com um processo simples e direto, você pode ter o pgBackRest funcionando rapidamente em seu ambiente PostgreSQL.

Com pgBackRest é possivel realizar diferentes tipos de backups, permitindo que você escolha a abordagem mais adequada às suas necessidades de backup e restauração. Cada tipo de backup possui características distintas que podem impactar a eficiência, o tamanho dos arquivos de backup e a facilidade de restauração.

  1. Backup completo (Full): Um backup completo inclui todos os arquivos necessários para restaurar completamente o banco de dados. Ele captura o estado atual do banco de dados PostgreSQL e é usado como ponto de partida para backups incrementais.
  2. Backup diferencial: Um backup diferencial captura apenas as alterações feitas desde o último backup completo. Ele economiza espaço em disco em comparação com um backup completo, mas requer o backup completo correspondente para a restauração.
  3. Backup incremental: Um backup incremental captura apenas as alterações feitas desde o último backup, seja ele completo, diferencial ou incremental. Ele oferece uma abordagem mais granular para backups e economiza ainda mais espaço em disco, mas requer a cadeia completa de backups para a restauração.

O pgBackRest é uma ferramenta repleta de recursos que oferece uma série de funcionalidades avançadas para o gerenciamento dos seus backups no PostgreSQL. Aqui vai um resumo sobre os destaques que o pgBackRest possui:

  1. Backup e Restauração Paralelos: O pgBackRest realiza backups e restaurações de forma paralela, aproveitando o processamento em paralelo e algoritmos de compressão eficientes, como lz4 e zstd. Isso melhora significativamente o desempenho e reduz o tempo necessário para concluir as operações de backup e restauração.
  2. Operação Local ou Remota: O pgBackRest permite realizar operações de backup, restauração e arquivamento localmente ou remotamente por meio de TLS/SSH, com uma configuração mínima. Além disso, oferece uma interface para consultar o PostgreSQL por meio da camada de protocolo, eliminando a necessidade de acesso remoto ao PostgreSQL e melhorando a segurança.
  3. Múltiplos Repositórios: O pgBackRest suporta múltiplos repositórios, o que permite, por exemplo, ter um repositório local com retenção mínima para restaurações rápidas e um repositório remoto (ou na nuvem) com retenção prolongada para redundância e acesso em toda a empresa.
  4. Compatibilidade com várias versões do PostgreSQL: O pgBackRest oferece suporte a dez versões do PostgreSQL, incluindo as cinco versões suportadas e as últimas cinco versões em fim de vida (EOL).
  5. Criptografia : O pgBackRest pode criptografar o repositório para proteger os backups onde quer que sejam armazenados.

Instalando o pgBackRest

O pgBackRest é utilizado preferencialmente em ambientes Linux. Portanto, neste tutorial, vamos nos concentrar na instalação em um ambiente Linux para aprender mais sobre essa ferramenta.

Para instalar o pgBackRest, adicione o repositório do PostgreSQL e instale o pacote usando os seguintes comandos:

No Ubuntu/Debian:

sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
apt update
apt install -y pgbackrest

No RHEL/Rocky (9):

dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
dnf -qy module disable postgresql
dnf install -y pgbackrest

Configurando o pgBackRest

O arquivo pgbackrest.conf é responsável por definir as configurações do pgBackRest. Nesse arquivo, é possível configurar diferentes seções para diferentes conjuntos de bancos de dados e diretórios de backup. Para configurar o pgBackRest, você precisa editar o arquivo de configuração no diretório /etc/pgbackrest/pgbackrest.conf ou /etc/pgbackrest.conf. Para isso, execute o seguinte comando:

sudo nano /etc/pgbackrest/pgbackrest.conf

Vamos configurar com o seguinte conteúdo:

[global]
repo1-path=/seu/diretorio/de/backups
repo1-retention-full=7
log-level-console=info
log-level-file=debug
process-max=2

[backrest-demo]
pg1-path=/var/lib/postgresql/15/main
pg1-port=5432
pg1-user=postgres
pg1-socket-path=/var/run/postgresql

A seção [global] define as configurações globais para o pgBackRest, enquanto a seção [backrest-demo] define as configuração referente a uma unica instancia PostgreSQL.

A opção repo1-path define o caminho para o diretório de backup, seus metadados e arquivos de configuração. A opção log-level-console define o nível de log a ser exibido no console, a opção log-level-file define o nível de log a ser armazenado em um arquivo de log e a opção process-max define o número máximo de processos a serem usados ​​para compactar/transferir.

A opção pg1-pathdefine o caminho para o diretório de dados do PostgreSQL, o pg1-port define a porta do PostgreSQL, o pg1-user define o usuário do PostgreSQL e o pg1-socket-path define o caminho do soquete do PostgreSQL.

Configurando o pgBackRest para archive_command

O archive_command é usado para arquivar suas logs de transação. O pgBackRest pode ser usado para gerenciar seu archive_command. Para fazer isso, ative o archive_mode e adicione a seguinte linha no parâmetro archive_command do seu arquivo postgresql.conf:

archive_mode = on
archive_command = 'pgbackrest --stanza=backrest-demo archive-push %p'

A primeira linha habilita o arquivamento de logs transacionais, a segunda linha define o archive_command para usar o pgBackRest para arquivar os logs de transação.

Atenção: Ao realizar alterações no archive_mode é necessário reiniciar sua instancia PostgreSQL para que a nova configuração seja aplicada.

Criando sua stanza no pgBackRest

Uma stanza no pgBackRest é uma seção de configuração que define as propriedades específicas para cada instância de banco de dados do PostgreSQL.

Crie sua stanza com o comando:

pgbackrest --stanza=backrest-demo stanza-create

Após a criação da sua stanza é recomendado que o comando check seja executado para garantir que o arquivamento e os backups sejam configurados corretamente.

O comando check tentará verificar todos os repositórios e bancos de dados configurados para o host no qual o comando é executado. Ele detecta configurações incorretas, testa seu arquivamento e seus repositórios de backup.

pgbackrest --stanza=backrest-demo check

Fazendo o primeiro backup com o pgBackRest

Agora que sua configuração está completa seus backups estão prontos para serem feitos. Para fazer o primeiro backup com o pgBackRest, execute o seguinte comando:

pgbackrest --stanza=backrest-demo --type=full backup

Após seu backup ser concluido com sucesso você pode verificar informações sobre ele com o comando info. Por padrão, o comando info fornece um resumo legível dos backups para a stanza solicitada. se não for especificado sua stanza no parâmetro --stanza, o comando info trará informação de todas as stanza disponiveis.

pgbackrest --stanza=backrest-demo info

Conclusão

O pgBackRest é uma ferramenta poderosa e fácil de usar para backup e restauração do PostgreSQL. Neste post, aprendemos a instalar, configurar e usar o pgBackRest para fazer backup completos do seu banco de dados PostgreSQL e seus backups de logs transacionais. Com o pgBackRest, você pode garantir a segurança dos seus dados e estar preparado para restaurar seus bancos de dados em caso de falhas inesperadas.

Anterior Novo curso de CI/CD com Jenkins, Nexus, SonarQube, GitLab e GitHub Actions na 4Linux
Próxima Descubra as vantagens do Linux e como migrar facilmente para ele

About author

Guilherme Staskoviak
Guilherme Staskoviak 5 posts

DBA Consultor & Instrutor PostgreSQL, amante de tecnologia e música.

View all posts by this author →

Você pode gostar também

Infraestrutura TI

Monitoramento de Dados: Como Utilizar o PostgreSQL e o PgPool com Zabbix

Com o mercado tecnológico cada vez mais crescente, o volume de dados aumenta significativamente a cada minuto, e esse volume é armazenado em diversos sistemas de banco de dados distribuídos.

Monitoramento TI

Como monitorar seu ambiente MongoDB com Prometheus e Grafana

O MongoDB é uma das soluções de NoSQL mais utilizadas na atualidade. Ele é um tipo de banco baseado em documentos assim como o AWS DocumentDB, Couchbase Server e Apache

Banco de Dados

Entenda o Pool de Conexões no PostgreSQL e Melhore a Performance do seu Banco de Dados

Você que trabalha com o PostgreSQL há um determinado tempo já deve ter visto o seguinte erro “FATAL: sorry, too many clients already”, ou então visto o parâmetro max_connections e