Не запускается Служба Postgres

1. doctorov_s 40 06.01.17 14:58 Сейчас в теме
С Новым годом! помогите пожалуйста разобраться с проблемой: При запуске Postgres выдает ошибку: Служба была запущена, а затем остановлена. Все перечитал, не могу понять в чем дело, все перепробовал, может кто то сталкивался с данной проблемой поделитесь опытом!
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
25. user1030293 10.08.18 12:16 Сейчас в теме
(1)
Не запускается Служба Postgres
При запуске Postgres выдает ошибку: Служба была запущена, а затем остановлена. Все перечитал, не могу понять в чем дело, все перепробовал, может кто то сталкивался с данной проблемой поделитесь опытом!

Может поможет кому.
В Windows при установке PostgreSQL создаётся пользователь postgres.
При возникновении подобной ошибки добавьте пользователя postgres во вкладку "Безопасность" папки C:\Program Files (x86)\PostgreSQL и дайте ему все права.
После этого у меня служба запускается нормально.
request4t; +1 Ответить
27. user1219497 12.05.19 23:01 Сейчас в теме
(1)Как это лечить ребята, помогите пожалуйста я нуб!!!



2019-05-08 17:38:27.761 MSK [1448] СООБЩЕНИЕ: работа системы БД была прервана; последний момент работы: 2019-05-08 17:34:49 MSK
2019-05-08 17:38:32.801 MSK [1448] СООБЩЕНИЕ: система БД была остановлена нештатно; производится автоматическое восстановление
2019-05-08 17:38:32.871 MSK [1448] СООБЩЕНИЕ: запись REDO начинается со смещения 0/163E278
2019-05-08 17:38:32.871 MSK [1448] СООБЩЕНИЕ: неверная длина записи по смещению 0/163E358: ожидалось 24, получено 0
2019-05-08 17:38:32.871 MSK [1448] СООБЩЕНИЕ: записи REDO обработаны до смещения 0/163E320
2019-05-08 17:38:33.895 MSK [720] СООБЩЕНИЕ: система БД готова принимать подключения
2019-05-08 17:42:06.794 MSK [5404] ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю)
2019-05-08 17:42:06.794 MSK [5404] ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres".
Подключение соответствует строке 80 в pg_hba.conf: "host all all 127.0.0.1/32 md5"
2019-05-08 17:42:08.004 MSK [5440] ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю)
2019-05-08 17:42:08.004 MSK [5440] ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres".
Подключение соответствует строке 80 в pg_hba.conf: "host all all 127.0.0.1/32 md5"
2019-05-08 17:42:08.113 MSK [5456] ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю)
2019-05-08 17:42:08.113 MSK [5456] ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres".
Подключение соответствует строке 80 в pg_hba.conf: "host all all 127.0.0.1/32 md5"
2019-05-08 17:43:04.482 MSK [720] СООБЩЕНИЕ: получен SIGHUP, файлы конфигурации перезагружаются
2019-05-08 17:45:32.966 MSK [3312] ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю)
2019-05-08 17:45:32.966 MSK [3312] ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres".
Подключение соответствует строке 80 в pg_hba.conf: "host all all 127.0.0.1/32 md5"
2019-05-08 17:45:34.109 MSK [4160] ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю)
2019-05-08 17:45:34.109 MSK [4160] ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres".
Подключение соответствует строке 80 в pg_hba.conf: "host all all 127.0.0.1/32 md5"
2019-05-08 17:45:34.171 MSK [4044] ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю)
2019-05-08 17:45:34.171 MSK [4044] ПОДРОБНОСТИ: Пароль не подходит для пользователя "postgres".
Подключение соответствует строке 80 в pg_hba.conf: "host all all 127.0.0.1/32 md5"
2019-05-08 18:05:53.171 MSK [720] СООБЩЕНИЕ: получен запрос на быстрое выключение
2019-05-08 18:05:53.181 MSK [1764] ОШИБКА: выполнение оператора отменено по запросу пользователя
2019-05-08 18:05:53.181 MSK [1880] ОШИБКА: выполнение оператора отменено по запросу пользователя
2019-05-08 18:05:53.221 MSK [720] СООБЩЕНИЕ: прерывание всех активных транзакций
2019-05-08 18:05:53.221 MSK [720] СООБЩЕНИЕ: рабочий процесс: logical replication launcher (PID 1880) завершился с кодом выхода 1
2019-05-08 18:05:53.231 MSK [1556] СООБЩЕНИЕ: выключение
2019-05-08 18:05:58.447 MSK [720] СООБЩЕНИЕ: система БД выключена
2. doctorov_s 40 06.01.17 15:27 Сейчас в теме
Все еще отдыхают что ли?? Никто не может помочь??
3. Cooler 22 06.01.17 15:48 Сейчас в теме
(2)
Все еще отдыхают что ли??
Нет, все заняты решением проблемы: новички пытаются угадать вашу конфигурацию и версии Windows и PostgreSQL, а гуру, которым это изначально ясно - что у вас в логах.

А потом все вместе будут телепать - что вы прочитали и что делали.
7. doctorov_s 40 06.01.17 16:46 Сейчас в теме
4. ansh15 06.01.17 16:11 Сейчас в теме
(2) Так что пишут в postgresql-дата_время.log? На тот момент когда перестало запускаться?
5. doctorov_s 40 06.01.17 16:42 Сейчас в теме
Windows Server 2003, PostgreSQL Database Server 9.4.2-1.1C(x64)
6. doctorov_s 40 06.01.17 16:46 Сейчас в теме
попробовал, изменять порты, перезагружать комп, чистить log как написано в статье: http://b4bgroup.ru/stati/article_post/ne-zapuskayetsya-sluzhba-postgresql.
А вообще суть не в том, что не запускается изначально, а в том что 3 дня назад работало, а потом перестала запускаться служба, при попытке запустить выдает ошибку которая написано в самом начале!
8. TODD22 18 06.01.17 16:48 Сейчас в теме
(6)
чистить log как написано

Попробуйте логи читать, а не чистить.
9. doctorov_s 40 06.01.17 16:53 Сейчас в теме
(8) А как его прочитать??
10. TODD22 18 06.01.17 17:07 Сейчас в теме
(9)Выше вам показали где найти сам лог файл. А чем читается можно загуглить. Может вообще любым текстовым редактором. Может каким нибудь специальным или входящим в оснастку СУБД. Но вам в любом случае копать в эту сторону....
11. doctorov_s 40 06.01.17 17:19 Сейчас в теме
Вот что написано в Логе:
2016-12-30 13:45:51 GMT FATAL: the database system is starting up
2016-12-30 13:46:00 GMT LOG: database system was not properly shut down; automatic recovery in progress
2016-12-30 13:46:00 GMT LOG: redo starts at B/1E7C7528
2016-12-30 13:46:00 GMT LOG: record with zero length at B/1E7E48B8
2016-12-30 13:46:00 GMT LOG: redo done at B/1E7E4888
2016-12-30 13:46:00 GMT LOG: last completed transaction was at log time 2016-12-30 13:38:35.241+00
2016-12-30 13:46:02 GMT LOG: database system is ready to accept connections
2016-12-30 13:46:02 GMT LOG: autovacuum launcher started
2016-12-30 13:47:47 GMT LOG: autovacuum: found orphan temp table "pg_temp_9"."tt1" in database "GOATiT"
16. ansh15 06.01.17 18:04 Сейчас в теме
17. doctorov_s 40 06.01.17 18:08 Сейчас в теме
(16) немного не понял, что это?? у меня же вообще служба не стартует а не база не работает!
22. drim87 07.01.17 11:25 Сейчас в теме
(11) в логе у тебя написано что работа сервера (postgresql) бала выполнена некорректно и будет выполнено автоматическое восстановление. Далее оно выполнилось, служба получила статус "бд готова принимать соединение". Далее у тебя выполняется autovacuum и во время него у тебя найдена сиротская схема pg_temp_9. Удалить ее надо.

DROP SCHEMA pg_temp_9 CASCADE
12. doctorov_s 40 06.01.17 17:26 Сейчас в теме
при запуске PGAdmin выдает ошибку:
Server doesn't listen
The server doesn't accept connections: the connection library reports
could not connect to server: Connection refused (0x0000274D/10061) Is the server running on host "localhost" (127.0.0.1) and accepting TCP/IP connections on port 5432?
13. doctorov_s 40 06.01.17 17:34 Сейчас в теме
Так что делать, кто то может подсказать??
14. sklowsky 23 06.01.17 17:40 Сейчас в теме
В конце года на двух серверах были проблемы с postgres. В результате выяснились проблемы с дисковой подсистемой. Проверьте диски на наличие ошибок. До проверки можно попробовать просто скопировать каталог с базой (каталог DATA). Если ошибки есть, они сразу вывалятся при копировании.
15. doctorov_s 40 06.01.17 17:55 Сейчас в теме
18. ansh15 06.01.17 18:12 Сейчас в теме
database system is ready to accept connections
Судя по вашему логу стартует.
Тогда что что пишет в журнале событий при запуске службы?
19. doctorov_s 40 06.01.17 18:33 Сейчас в теме
20. spacecraft 06.01.17 18:45 Сейчас в теме
(19) это говорит только о том, что запускаемый сервис не вернул управление в течении 30 сек.
Свежие логи самого Postgre есть?
Сервер (виндовый) перезагружали?
21. doctorov_s 40 06.01.17 18:50 Сейчас в теме
(20)Да сервак полностью перезагружался!
23. vvvalera 1 10.01.17 12:28 Сейчас в теме +1 $m
Попробуй переустановить службу, сравни с рабочей службой. Смотри в журнал приложений и служб ошибки
24. korzhishe 11.11.17 11:50 Сейчас в теме
28. ybatiaev 58 31.05.19 12:17 Сейчас в теме
(24) Добрый день! Как почистить лог постгриса? Ваша ссылка не работает (((( Помогите плиз
26. DanielMSK 02.10.18 12:17 Сейчас в теме
Решение с чисткой логов помогает, тут же запустился
32. frkbvfnjh 787 06.06.19 07:00 Сейчас в теме
(26) Мне тоже помогло C:\Program Files (x86)\PostgreSQL\9.6.1-4.1C\bin>pg_resetxlog.exe -f "D:\PostgreSQL\data", только не с первого раза, нужно запустить службу, если не запустилась, то еще раз чистить и снова пробовать, или сразу выполнить эту команду раз 50 и потом все стартует.
При первом вызове была ошибка:
pg_resetxlog: lock file "postmaster.pid" exists
Is a server running? If not, delete the lock file and try again.

Удалил файл "postmaster.pid", потом нормально отработало.
33. ansh15 06.06.19 23:12 Сейчас в теме
Пример того, к чему может привести сброс журнала.
СУБД стартует, данные в базе имеются. но их качество абсолютно ничем не гарантировано.
34. gesitnikov 16.10.20 16:55 Сейчас в теме
Не знаю, актуальна ли тема, но напишу свой случай. У меня при установке постгри не создавался пользователь соответствующий, все ставилось вроде как с правами пользователя 1с. А описанная в старттопике ситуация исправилась проставлением полного доступа на папку с постгри для пользователя СОЗДАТЕЛЬ/ВЛАДЕЛЕЦ.
user1549132; +1 Ответить
35. user1549132 2 22.01.22 17:33 Сейчас в теме
(34) В моем случае я переместил папку, на новый диск, и тоже слетели права на папку. Просто дал доступ "Все" - "полный", и взлетела служба.
36. RomanDan 10.05.22 18:51 Сейчас в теме
Здравствуйте,

для тех кто ещё наступит на грабли с такой ошибкой в журнале Windows "Приложение":
< 2022-05-10 11:45:38.415 MSK >FATAL: lock file "postmaster.pid" already exists
< 2022-05-10 11:45:38.415 MSK >HINT: Is another postmaster (PID 3136) running in data directory "E:/PostgreSQLData/12"?


Утром Windows Server 2016 Std перестал отвечать даже на пинг. Пришлось рестартить через техподдержку дата-центра. Перезагрузили, но как служба PostgreSQL 12.6-6.1C(x64) не хотел запускаться. Стоит заметить, что попасть и работать в базах 1С можно было, Сервер 1С "вроде как" нормально функционировал при этом. В результате танцев с бубном помогло что-то из следующих действий, а может и совместно, ибо выполнялось вместе:
- остановить службу сервера 1С, удалить ВСЕ процессы postgres.exe на закладке Подробности в Диспетчере задач и переместить в другое место (переименовать) файл postmaster.pid
- удалить логи из папки (там ничего существенного нет, можете сами заглянуть в эти файлы) \pg_log\
37. dungeonkeeper 27 28.11.23 09:09 Сейчас в теме
Пожалуй добавлю свое разъяснение, поскольку недавно столкнулся с подобной историей сразу на двух серверах.
Симптомы такие. В консоли управления службами Windows, служба PostgresSQL не запущена. При попытке запустить службу руками, получаем сообщение что служба была запущена и затем остановлена.
Именно после подобных действий в журнале Windows появляются такие записи:
< 2022-05-10 11:45:38.415 MSK >FATAL: lock file "postmaster.pid" already exists
< 2022-05-10 11:45:38.415 MSK >HINT: Is another postmaster (PID 3136) running in data directory "E:/PostgreSQLData/12"?

Причина тому проста. Для запуска сервера PostgresSQL используется управляющее приложение pg_ctl.exe, именно оно и прописано в качестве службы.
У меня выглядит так :
"C:\Program Files\PostgreSQL\14.5-3.1C\bin\pg_ctl.exe" runservice -w -N "pgsql-14.5-3.1C-x64" -D "E:\SQL_bases\PostgreSQL\data\"

А сам процесс сервера SQL выглядит вот так:
"C:\Program Files\PostgreSQL\14.5-3.1C\bin\postgres.exe" -D "E:\SQL_bases\PostgreSQL\data"

Т.е. это другое приложение.
Если дать команду проверки состояния сервера, то мы увидим и PID процесса и сообщение о работе сервера.
c:\Program Files\PostgreSQL\14.5-3.1C\bin>pg_ctl.exe status -D "e:\SQL_bases\PostgreSQL\data\"
pg_ctl: server is running (PID: 8172)
C:/Program Files/PostgreSQL/14.5-3.1C/bin/postgres.exe "-D" "E:\SQL_bases\PostgreSQL\data"

По каким-то причинам pg_ctl.exe завершает свою работу при запуске, по этому и состояние службы в консоли не указано.
Вероятно такое поведение из-за последствий аварийного завершения работы сервера.

Теперь к самому главному, как вылечить.
Оказалось все просто. Надо сделать стоп/старт/стоп сервера Postgres через тоже самое приложение управления, таким образом корректно завершив незавершенные транзакции и только потом запустить службу
pg_ctl.exe stop -m fast -D "E:\SQL_bases\PostgreSQL\data\"
pg_ctl.exe start -D "E:\SQL_bases\PostgreSQL\data\"
pg_ctl.exe stop -m fast -D "E:\SQL_bases\PostgreSQL\data\"
net start pgsql-14.5-3.1C-x64
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот