serwer Postgres nie uruchamia się, nie tworzy dziennika, jak rozwiązać problem?


33

Uruchamiam instancję Postgres 9.3 na serwerze Ubuntu 12.04:

~# service postgresql start 

 * The PostgreSQL server failed to start. Please check the log output.
                                                                     [fail]

start kończy się niepowodzeniem, ale nie pozostawia dziennika, ten plik jest pusty:

tail /var/log/postgresql/postgresql-9.3-main.log 

i nie ma innych plików w tym katalogu: / var / log / postgresql /

jaki jest najlepszy sposób na rozwiązanie tego problemu?


czy to jest nowa instalacja pg, czy właśnie zrobiłeś aktualizację? sprawdź, czy użytkownik postgres ma prawa do pliku konfiguracyjnego pg i pliku dziennika
LinuxDevOps

3
Spróbuj uruchomić postgres w taki sam sposób, jak robi to skrypt (normalnie su - postgres; /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/datai zobacz, co ci daje. Może być konieczna zmiana nazwy użytkownika i ścieżek w zależności od konfiguracji.
Jenny D mówi Przywróć Monikę

Oprócz tego, co powiedział @JennyD, dodałbym -d 3do postgrespolecenia. Umożliwi to szersze wyjście debugowania zapisywane w dzienniku. Możesz obniżyć wynik debugowania, zmieniając go na 1 lub 2, lub zwiększyć, zmieniając go na 4 lub 5. Ponadto, co to jest wyjście which pgsql?
zymhan

Jak zainstalowano PostgreSQL na serwerze i skąd? Czy jest coś w logach systemowych , np. / Var / log / syslog, / var / log / messages itp.?
Craig Ringer

6
Nie rozumiem, dlaczego to pytanie zostało zamknięte.
guettli,

Odpowiedzi:


53

Spróbuj uruchomić go ręcznie z włączonym debugowaniem. Spowoduje to, że uruchomi się na pierwszym planie i wydrukuje wszelkie komunikaty o błędach do standardowego błędu, jednocześnie zwiększając gadatliwość.

Wierzę, że będzie to poprawna linia poleceń dla PostgreSQL 9.3 na Ubuntu, ale może wymagać drobnych poprawek (uwaga: linia jest podzielona dla czytelności; możesz zrekombinować ją do jednej linii (bez odwrotnego ukośnika), jeśli chcesz):

/usr/lib/postgresql/9.3/bin/postgres -d 3 -D /var/lib/postgresql/9.3/main \
   -c config_file=/etc/postgresql/9.3/main/postgresql.conf

Początek to lokalizacja postgrespliku binarnego, następnie włączamy debugowanie i ustawiamy go na poziom 3 (możesz to zmienić w górę lub w dół, aby zwiększyć lub zmniejszyć szczegółowość). Następnie określamy katalog danych i plik konfiguracyjny na początek. Sądzę, że powinny to być wartości domyślne dla Ubuntu Server 12.04.

Mamy nadzieję, że dostarczy ci wystarczających informacji, aby ustalić, gdzie jest problem.


1
ręczne uruchomienie działa dla mnie, ale nadal nie działa usługa. zmieniłem domyślny katalog danych, czy jest coś, co musiałbym zaktualizować, aby polecenie service znów działało w celu uruchomienia postgres?
chrismarx

1
@chrismarx - servicePolecenie to po prostu wygodne opakowanie wokół /etc/init.d/skryptu, który faktycznie uruchamia i zatrzymuje proces. Musisz spojrzeć na ten skrypt, aby zobaczyć, co robi inaczej niż po ręcznym uruchomieniu. Robienie czegoś takiego bash -x /etc/init.d/postgresql startmoże być dobrym miejscem do rozpoczęcia badań.
Christopher Cashell

3
dzięki, posortowałem, wystąpiły problemy z uprawnieniami do katalogu danych i wygląda na to, że usługa musiała być również uruchomiona z sudo
chrismarx

1
Ratownik. Nie mogłem znaleźć innego sposobu, aby powiedzieć, dlaczego PostgreSQL nie chce się uruchomić, ponieważ było tak, ponieważ nie mógł uzyskać dostępu do katalogu danych z powodu problemów z uprawnieniami.
Aron Lorincz,

1
dla mnie było to pozwolenie configs / etc / postgresql /
eugene
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.