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.
- 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.
- 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.
- 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:
- 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.
- 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.
- 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.
- 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).
- 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-path
define 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.
About author
Você pode gostar também
Por que você deve investir tempo estudando Python
Por que você deve investir tempo estudando Python No mundo cada vez maior das linguagens de programação, uma delas se destaca como uma ferramenta versátil e poderosa que conquistou os
Descubra o TimescaleDB: O banco de dados SQL para séries temporais
Hoje vamos falar um pouco sobre o TimescaleDB … Mas afinal, o que seria esse tal de TimescaleDB? Respondendo a pergunta acima, TimescaleDB (TSDB) é um banco de dados de
Aprenda SQL com Flexibilidade de Escolha de Banco de Dados no Nosso Curso
“Apesar de permitir trabalhar com qualquer banco de dados, o aluno vai poder escolher em qual banco quer trabalhar durante o curso: MySQL ou PostgreSQL.” explica Vinicius Vale, autor do