Całkowicie zresetować PostgreSQL do domyślnych?

17

Pytanie

Czy istnieje sposób na całkowite zresetowanie instalacji PostgreSQL w systemie Linux, więc jest on w tym samym stanie, co po zainstalowaniu?

Pomysł

Rozważyłem

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

ale być może nie jest to zalecana metoda.

Cel, powód

Byłoby to przydatne, aby pozbyć się resztek z poprzednich programów, które z niego korzystały.

Jasmine Lognnes
źródło
Możliwy duplikat serverfault.com/q/233234/69930 .
halfer

Odpowiedzi:

5

To powinno wystarczyć - tylko upewnij się najpierw, że obecna konfiguracja faktycznie robi przechowywać pliki w tych katalogach.

Po zakończeniu ponownie uruchom bazę danych:

sudo -U pgsql initdb
Jenny D.
źródło
1
Nie, proszę nie. Na Ubuntu przynajmniej spowoduje to ohydny bałagan, ponieważ oczekuje on użycia własnych narzędzi do pakowania.
Craig Ringer
1
To robi? Jest jeszcze jeden powód, aby użyć innego systemu, a następnie ... Osobiście głosowałbym na FreeBSD, ale każdy na swój.
Jenny D.
@Craig: jaki bałagan by to stworzył? Właśnie zastosowałem tę metodę na Ubuntu i wydaje mi się, że jest w porządku . Czy dodałbyś jakieś szczegóły do ​​swojej odpowiedzi?
halfer
1
@halfer Aby rozpocząć od postgresql.conf i pg_hba.conf, nie będzie tam, gdzie oczekują skrypty ububtu. Albo zignorują te utworzone przez initdb i będą nadal używać starych.
Craig Ringer
co jeśli jest to zdalna baza danych, z którą się połączyliśmy, a nie taka, którą zainicjowaliśmy lokalnie?
anon58192932
24

Wszystko zależy od tego, jak został zainstalowany.

Ubuntu, z pakietów (wbudowany lub apt.postgresql.org)

Zastosowanie pg_wrapper. Zobacz dokumentację Ubuntu dla PostgreSQL . Chcesz pg_dropclusterwszystkie istniejące klastry Pg, a następnie pg_createclusterczyste nowe.

Czy nie wystarczy usunąć dir danych i ponowne InitDB.

CentOS / RH / Fedora, wbudowane pakiety

Nie mam tego zainstalowanego i nie mogę teraz łatwo przetestować. Z pamięci myślę, że bezpiecznie jest po prostu zatrzymać serwer i usunąć katalog danych.

Pakiety CentOS / RH / Fedora, yum.postgresql.org

Zobaczyć /usr/share/doc/postgresql??-?.?.?/README.rpm-dist.

Zatrzymaj serwer za pomocą systemctllub servicepolecenia otoki, usuń katalog danych, a następnie uruchom /usr/pgsql-9.3/bin/postgresql93-setup initdb(dostosowując ścieżki odpowiednio do wersji).

Dowolna dystrybucja od instalatora EDB

Zatrzymaj serwer, usuń katalog danych i initdbnowy klaster. Zobacz dokumenty instalatora.

Ze źródła

Zatrzymaj serwer, usuń dane katalogu, uruchom ponownie.

OS X

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

Postgres.app? Instalator EDB? MacPorts?

Znajdź piwo. Wypij piwo Powtarzać. Jeśli to nie sprawi, że ból zniknie, zdobądź coś silniejszego.

Windows

  • Zatrzymaj usługę
  • Usuń dane reż
  • uruchom ponownie initdb runas.exejako użytkownik postgres (wcześniejszy niż 9.2) lub NETWORKSERVICE(9.2+). Lub po prostu zmień własność później.
Craig Ringer
źródło
1
W przypadku systemu OS X deinstalacja i czyszczenie brew nie dotyka mojego katalogu /usr/local/var/[email protected]. (usuwa aplikację w /usr/local/opt/[email protected], zwróć uwagę, że „opt” nie „var”) ”rm -rf /usr/local/var/[email protected]” był potrzebny przed ponowną instalacją.
Curtis Yallop
4

Czy nie najlepiej jest po prostu usunąć i ponownie zainstalować?

W ten sposób otrzymasz najnowszą wersję i zaktualizujesz wszelkie zależności po drodze.

Uruchom: sudo apt-get --purge usuń postgresql

Następnie: sudo apt-get install postgresql

i-CONICA
źródło
1
Nie usunęło to istniejących użytkowników DB + (od Postgres 9.5)
Sebastian Wagner