С Новым годом! помогите пожалуйста разобраться с проблемой: При запуске Postgres выдает ошибку: Служба была запущена, а затем остановлена. Все перечитал, не могу понять в чем дело, все перепробовал, может кто то сталкивался с данной проблемой поделитесь опытом!
Не запускается Служба Postgres
При запуске Postgres выдает ошибку: Служба была запущена, а затем остановлена. Все перечитал, не могу понять в чем дело, все перепробовал, может кто то сталкивался с данной проблемой поделитесь опытом!
Может поможет кому.
В Windows при установке PostgreSQL создаётся пользователь postgres.
При возникновении подобной ошибки добавьте пользователя postgres во вкладку "Безопасность" папки C:\Program Files (x86)\PostgreSQL и дайте ему все права.
После этого у меня служба запускается нормально.
(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] СООБЩЕНИЕ: система БД выключена
Нет, все заняты решением проблемы: новички пытаются угадать вашу конфигурацию и версии Windows и PostgreSQL, а гуру, которым это изначально ясно - что у вас в логах.
А потом все вместе будут телепать - что вы прочитали и что делали.
попробовал, изменять порты, перезагружать комп, чистить log как написано в статье: http://b4bgroup.ru/stati/article_post/ne-zapuskayetsya-sluzhba-postgresql.
А вообще суть не в том, что не запускается изначально, а в том что 3 дня назад работало, а потом перестала запускаться служба, при попытке запустить выдает ошибку которая написано в самом начале!
(9)Выше вам показали где найти сам лог файл. А чем читается можно загуглить. Может вообще любым текстовым редактором. Может каким нибудь специальным или входящим в оснастку СУБД. Но вам в любом случае копать в эту сторону....
Вот что написано в Логе:
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"
(11) в логе у тебя написано что работа сервера (postgresql) бала выполнена некорректно и будет выполнено автоматическое восстановление. Далее оно выполнилось, служба получила статус "бд готова принимать соединение". Далее у тебя выполняется autovacuum и во время него у тебя найдена сиротская схема pg_temp_9. Удалить ее надо.
при запуске 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?
В конце года на двух серверах были проблемы с postgres. В результате выяснились проблемы с дисковой подсистемой. Проверьте диски на наличие ошибок. До проверки можно попробовать просто скопировать каталог с базой (каталог DATA). Если ошибки есть, они сразу вывалятся при копировании.
(19) это говорит только о том, что запускаемый сервис не вернул управление в течении 30 сек.
Свежие логи самого Postgre есть?
Сервер (виндовый) перезагружали?
(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", потом нормально отработало.
Не знаю, актуальна ли тема, но напишу свой случай. У меня при установке постгри не создавался пользователь соответствующий, все ставилось вроде как с правами пользователя 1с. А описанная в старттопике ситуация исправилась проставлением полного доступа на папку с постгри для пользователя СОЗДАТЕЛЬ/ВЛАДЕЛЕЦ.
для тех кто ещё наступит на грабли с такой ошибкой в журнале 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\
Пожалуй добавлю свое разъяснение, поскольку недавно столкнулся с подобной историей сразу на двух серверах.
Симптомы такие. В консоли управления службами 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, именно оно и прописано в качестве службы.
У меня выглядит так :
Т.е. это другое приложение.
Если дать команду проверки состояния сервера, то мы увидим и 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