Redefinir completamente o PostgreSQL para o padrão?


16

Questão

Existe uma maneira de redefinir completamente uma instalação do PostgreSQL no Linux, para que ela esteja no mesmo estado em que eu a instalei?

Idéia

Eu considerei

rm -rf /var/lib/pgsql/*
rm -rf /var/lib/pgsql/backups/*
rm -rf /var/lib/pgsql/data/*

mas talvez esse não seja um método recomendado.

Objetivo

Isso seria útil para se livrar das sobras de programas anteriores que o usaram.


Possível duplicata de serverfault.com/q/233234/69930 .
— Halfer

Respostas:


4

Isso deve fazê-lo - apenas certifique-se primeiro de que a atual configuração realmente faz armazenar os arquivos nesses diretórios.

Uma vez feito, reinicie o banco de dados:

sudo -U pgsql initdb

11
Não, por favor não. No Ubuntu, pelo menos, isso causará uma confusão hedionda, pois espera que você use suas próprias ferramentas de wrapper.
— Craig Ringer

11
Faz? Bem, há mais uma razão para usar outro sistema, então ... Pessoalmente, votaria no FreeBSD, mas cada um por conta própria.
— 111114 Jenny D

@ Craig: que tipo de bagunça ele criaria? Acabei de usar esse método no Ubuntu, e parece bom para mim . Você adicionaria alguns detalhes à sua resposta?
— Halfer

11
@halfer Para começar com postgresql.conf e pg_hba.conf, não estará onde os scripts do ububtu esperam. Ou eles ignoram os que o initdb criou e continuam usando os antigos.
— Craig Ringer

e se esse for um banco de dados remoto ao qual nos conectamos e não um inicializado localmente?
— Anon58192932

24

Tudo depende de como foi instalado.

Ubuntu, a partir de pacotes (embutido ou apt.postgresql.org)

Use pg_wrapper. Veja os documentos do Ubuntu para PostgreSQL . Você deseja pg_dropclustertodos os clusters de Pg existentes e depois pg_createclusterum novo limpo.

Você não apenas apagar o dir de dados e re-initdb.

CentOS / RH / Fedora, pacotes embutidos

Não tenho isso instalado e não posso testar facilmente no momento. A partir da memória, acho seguro parar o servidor e excluir o diretório de dados.

Pacotes do CentOS / RH / Fedora, yum.postgresql.org

Veja /usr/share/doc/postgresql??-?.?.?/README.rpm-dist.

Pare o servidor com systemctlo servicecomando wrapper, exclua o diretório de dados e execute /usr/pgsql-9.3/bin/postgresql93-setup initdb(ajustando os caminhos conforme apropriado para sua versão).

Qualquer distro, do instalador do EDB

Pare o servidor, exclua o diretório de dados e initdbum novo cluster. Veja os documentos do instalador.

De origem

Pare o servidor, exclua o diretório de dados, re-initdb.

OS X

Homebrew: brew uninstall postgresql; brew cleanup; brew install postgresql

Postgres.app? Instalador do EDB? MacPorts?

Encontre uma cerveja. Beba cerveja. Repetir. Se isso não fizer a dor desaparecer, consiga algo mais forte.

janelas

  • Parar serviço
  • Excluir diretório de dados
  • execute novamente o initdb usando runas.execomo usuário do postgres (pré-9.2) ou NETWORKSERVICE(9.2+). Ou apenas mude a propriedade depois.

11
Para o OS X, a desinstalação e limpeza do brew não toca nos meus dados dir /usr/local/var/postgresql@9.5. (ele remove o aplicativo em /usr/local/opt/postgresql@9.5, observe "opt" not "var") "rm -rf /usr/local/var/postgresql@9.5" era necessário antes da reinstalação.
— Curtis Yallop

4

Não é melhor apenas remover e reinstalar?

Dessa forma, você obterá a versão mais recente e atualizará quaisquer dependências ao longo do caminho.

Execute: sudo apt-get --purge remove postgresql

Então: sudo apt-get install postgresql


11
Isso não remover usuários DB + existentes (como de Postgres 9.5)
— Sebastian Wagner
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.