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
Como Recuperar a Senha do Root no MySQL: Guia Passo a Passo
Em muitas situações é necessário resgatar a senha para o usuário root no banco de dados MySQL. Entre elas, a mais comum é a necessidade de prestar manutenção a um
4Linux: Líder em Implementação de Banco de Dados PostgreSQL
A 4Linux implementou um dos maiores cases mundiais de banco de dados PostgreSQL que chegou até mesmo a ser palestrado no maior evento mundial de PostgreSQL, o PGCON. O case do Datasus também
Seja um DBA Completo: Domine SQL e os Principais Bancos de Dados do Mercado
DBA moderno precisa ser completo e conhecer a linguagem SQL e suas particularidades para os principais banco de dados do mercado. Em março/2016 a 4Linux lançou o curso Administração