сервер postgres не запускається, не створює журналу, як усунути неполадки?


33

Я запускаю екземпляр postgres 9.3 на сервері ubuntu 12.04:

~# service postgresql start 

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

запуск не вдається, але він не залишає журналу, цей файл порожній:

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

і в цьому каталозі немає інших файлів: / var / log / postgresql /

який найкращий спосіб усунути це?


це нова установка в pg чи ви просто зробили оновлення? перевірте, чи користувач postgres має права на файл конфігурації pg та файл журналу
LinuxDevOps

3
Спробуйте запустити postgres так само, як це робить ваш сценарій (як правило, su - postgres; /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/dataі подивіться, що він дає. Можливо, вам потрібно буде змінити ім’я користувача та шляхи залежно від налаштувань.
Дженні Д каже, що поверніть Моніку

Окрім того, що сказав @JennyD, я додав би -d 3до postgresкоманди. Це дасть можливість більш масштабного налагодження виводу, записаного в журнал. Ви можете знизити налагоджувальний вихід, змінивши його на 1 або 2, або збільшити, змінивши його на 4 або 5. Також, що таке вихід which pgsql?
Зімхан

Як було встановлено PostgreSQL на сервері і звідки? Чи є щось у системних журналах, наприклад / var / log / syslog, / var / log / messages тощо?
Крейг Рінгер

6
Я не розумію, чому це питання було закрито.
guettli

Відповіді:


53

Спробуйте запустити його вручну з увімкненою налагодженням. Це призведе до запуску на передньому плані та друку будь-яких повідомлень про помилки до стандартної помилки, одночасно збільшуючи багатослівність.

Я вважаю, що це буде правильний командний рядок для PostgreSQL 9.3 на Ubuntu, але це може потребувати дуже незначного налаштування (зауважте: рядок розділений для читабельності; ви можете рекомбінувати його в один рядок (без зворотної косої риси), якщо хочете):

/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

Початком є ​​розташування postgresдвійкового, потім ми включаємо налагодження і встановлюємо його на рівень 3 (ви можете налаштувати це вгору або вниз, щоб збільшити або зменшити багатослів’я). Далі ми вказуємо каталог даних та файл конфігурації, з якого слід розпочати. Я думаю, це повинні бути типові настройки для Ubuntu Server 12.04.

Сподіваємось, це дасть вам достатньо інформації, щоб визначити, де проблема.


1
запускаючи його вручну, працює для мене, але використання сервісу все ще не працює. я змінив каталог даних за замовчуванням, чи потрібно мені щось оновити, щоб команда служби знову працювала для запуску постгресів?
chrismarx

1
@chrismarx - serviceКоманда є просто зручною обгорткою навколо /etc/init.d/сценарію, яка фактично запускає і зупиняє процес. Вам потрібно буде переглянути цей сценарій, щоб побачити, що він робить інакше, ніж при ручному його запуску. Робити щось на кшталт bash -x /etc/init.d/postgresql startможе бути хорошим місцем для початку досліджень.
Крістофер Кашелл

3
дякую, у мене це було відсортовано, виникли проблеми з дозволом із каталогу даних, і здається, сервіс також повинен був працювати із sudo
chrismarx

1
Рятувальник. Я не міг знайти іншого способу пояснити, чому PostgreSQL не запуститься, як це було, тому що він не міг отримати доступ до каталогу даних через проблеми з дозволом.
Арон Лоринц

1
для мене це був дозвіл configs / etc / postgresql /
eugene
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.