Olá Otavio, tudo bem?
Irei responder suas dúvidas por partes, como você elencou.
Backup a quente: No PostgreSQL, é possível realizar backups a quente (ou seja, sem parar o serviço do banco) utilizando a ferramenta pg_basebackup
ou configurando o WAL (Write-Ahead Logging) para permitir a recuperação ponto-a-ponto. Mas, a restauração ponto-a-ponto, geralmente requer que o serviço do banco de dados seja parado para garantir a consistência dos dados. Isso ocorre porque a restauração precisa aplicar logs de transações para trazer o banco de dados a um estado consistente.
Restauração de um banco específico: Sim, se você estiver usando backup físico (nível de diretório do cluster). Nesse caso, o backup e a restauração envolvem toda a instância PostgreSQL, e não é possível restaurar apenas um banco isoladamente. Isso acontece porque os dados de todos os bancos compartilham metadados e estruturas internas dentro do diretório data/.
Com isso, para restaurar um único banco de dados, sem afetar os demais, o caminho recomendado é usar o backup lógico, feito com o comando pg_dump
, que permite exportar e restaurar bancos individualmente sem a necessidade de parar o serviço.
Restauração em uma pasta separada: Fazer a restauração em uma pasta separada e depois substituir a pasta do banco de dados no diretório de dados não é uma prática recomendada. Isso pode causar inconsistências e outros problemas. O procedimento correto seria parar o serviço do PostgreSQL, realizar a restauração completa e, em seguida, iniciar o serviço novamente. Isso garante que todas as transações e logs sejam aplicados corretamente.
Abaixo deixo alguns links para complementação, eles estão em inglês, mas você pode usar a tradução automática do navegador.
Espero ter ajudado. Bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!