Percebi, depois de um tempo, que quando recebi novas versões do postgresql (estou usando o debian testing) elas estavam sendo instaladas enquanto mantinha versões mais antigas do DBMS rodando em paralelo (uma escutando em uma porta diferente e assim por diante). Então, sem pensar muito sobre isso, eu apenas executei dpkg remove --purge
nas versões mais antigas sem perceber que o banco de dados que eu estava usando estava realmente rodando na versão mais antiga instalada. Existem dados de banco de dados no FS que não são excluídos ao remover o pacote postgresql com --purge para que eu possa recuperar o banco de dados?
relate perguntas
-
Posso ativar o PITR depois que o banco de dados foi usado
-
Práticas recomendadas para executar a replicação atrasada do deslocamento de tempo
-
Os procedimentos armazenados impedem a injeção de SQL?
-
Sequências Biológicas do UniProt no PostgreSQL
-
Qual é a diferença entre a replicação do PostgreSQL 9.0 e o Slony-I?
Verifique
/var/lib/postgresql/<version>
. Existem os arquivos de banco de dados.Se este diretório não existir, ele foi removido. O que exatamente acontece na
--purge
remoção, depende da distribuição (mais exatamente, nos scripts de desinstalação foram chamados com um parâmetro diferente em/var/lib/dpkg/info
). Depende dos scripts (que foram fornecidos pelo pacote), o que exatamente vai acontecer. A lógica do--purge
dita uma remoção real e total.Se isso aconteceu, os dados - pelo menos parcialmente - provavelmente ainda estão disponíveis em seu disco, portanto, uma recuperação ainda não é impossível (exceto os setores substituídos), mas é muito improvável que você possa fazer isso.
Para fazer isso, você precisaria desligar o sistema (sim, é um dos raros casos em que é necessário desligar explicitamente sem qualquer sincronização, etc.), reiniciar sem montá-lo e, em seguida, fazer uma verificação em nível de bloco para arquivos de banco de dados postgresql por suas assinaturas.
Sempre tenha um backup periódico e automático de seus bancos de dados.