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.


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

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.

1
W przypadku systemu OS X deinstalacja i czyszczenie brew nie dotyka mojego katalogu /usr/local/var/postgresql@9.5. (usuwa aplikację w /usr/local/opt/postgresql@9.5, zwróć uwagę, że „opt” nie „var”) ”rm -rf /usr/local/var/postgresql@9.5” 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


1
Nie usunęło to istniejących użytkowników DB + (od Postgres 9.5)
Sebastian Wagner
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.