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

Banco de Dados

Como lidar com dados duplicados no PostgreSQL usando a coluna de sistema ctid

Você que utiliza PostgreSQL, já deve ter se deparado com o problema dos dados duplicados. É possível que em uma tabela existam campos que contenham valores repetidos e sua necessidade

Banco de Dados

Otimização de Consultas PostgreSQL com Postgres Explain Visualizer v2

No mundo dos bancos de dados, a otimização de consultas desempenha um papel vital na garantia de um desempenho eficiente e ágil. Com o crescente volume de dados e as

Banco de Dados

Domine o Wildfly 8: Curso com foco em Administração e DevOps

Administração com Cluster de Alta Performance em ambiente DevOps. Novidades do Curso além dos recursos novos do Wildfly No curso existe uma máquina DEVOPS (com ferramentas dev, como GIT, Maven)