Инцидент: в ситуации, когда сервер был выключен аварийно, через кнопку выключения или при отсутствии электропитания, то после его включения служба PostgreSQL в некоторых случаях не запускается.
Для версий PostgreSQL:
- 9.X
- 11.X
Некорретное завершение работы службы
Как исправить:
1. Запустите сеанс командной строки от Администратора.
2. Выполните последовательно следующие команды и внимательно следите за их работой.
3. Определить домашний каталог PostgreSQL.
set PGDATA=%SET_POSTGRES_BIN%/../data/
4. Проверьте реальный статус экземпляра службы PostgreSQL.
%SET_POSTGRES_BIN%/pg_ctl.exe status
5. Выполните команду для полной остановки процесса PostgreSQL.
Следующими командами выполняется корректный выход из рабочего состояния сервера СУБД и его запуск.
%SET_POSTGRES_BIN%/pg_ctl.exe stop -m fast
6. Запустите приложение СУБД.
%SET_POSTGRES_BIN%/pg_ctl.exe start
7. После этого заново остановите процесс. Повтор данного шага вызван тем, что таким образом запуска приложение сервера СУБД корректно завершит недостающие транзакции.
%SET_POSTGRES_BIN%/pg_ctl.exe stop -m fast
8. После выполненных шагов по перезапуску и правильной остановке экземпляра СУБД запустите службу PostgreSQL.
net start postgresql-x64-9.4
net start postgresql-x64-11
Служба не запускается. Есть сообщения об ошибках. Отсутствуют исполняемые файлы и DLL-библиотеки СУБД
В некоторых случаях после аварийной перезагрузки или в результате срабатывания антивирусных программ при запуске ОС Windows несколько файлов, которые необходимы для работы СУБД PostgreSQL могут отсутствовать. Это может объясняться критическим сбоем ОС.
При попытке использовать способ для запуска служб и инициирования процесса pg_ctl.exe, будет отображаться сообщение о его отсутствии или недостающих файлов библиотек.
1. Запустите скрипт, с помощью которого, проверьте, что для данной версии СУБД присутствуют все компоненты и файлы, которые входят в состав.
2. Скачайте и разместите файл скрипт в папку с PostgreSQL: {Disk}:/Папка_PostgreSQL/bin/.
- PostgreSQL 11: check_v11.bat.
- PostgreSQL 9: check_v9.bat.
3. Запустите файл скрипта. В результате выполнения будет сформирован файл отчета report.txt.
4. Откройте файл отчета и проверьте, что все компоненты присутствуют.
Обязательно должны присутствовать такие библиотеки и исполняемые файлы, а также все библиотеки DLL.
- libintl-9.dll
- pg_ctl.exe
- postgres.exe
- psql.exe
5. Если какие-либо файлы отсутствуют. Тогда загрузите архив для соответствующей версии PostgreSQL и скопируйте недостающие файлы в папку СУБД {Disk}:/Папка_PostgreSQL/bin/.
- Сборник файлов для PostgreSQL 11
- Сборник файлов для PostgreSQL 9
6. После копирования недостающих файлов:
- Остановите службы сервера приложений SetRetail10 и МУК.
- Запустите службу PostgreSQL.
- Запустите службы сервера приложений SetRetail10 и МУК.
Дополнительная информация
Сравнительная таблица списка исполняемых файлов в версиях PostgreSQL
PostgreSQL 9.4 | PostgreSQL 11.7 |
clusterdb.exe | clusterdb.exe |
createdb.exe | createdb.exe |
createlang.exe | createuser.exe |
createuser.exe | dropdb.exe |
dropdb.exe | dropuser.exe |
droplang.exe | ecpg.exe |
dropuser.exe | icudt53.dll |
ecpg.exe | icuin53.dll |
iconv.dll | icuio53.dll |
initdb.exe | icule53.dll |
isolationtester.exe | iculx53.dll |
libeay32.dll | icutest53.dll |
libintl-8.dll | icutu53.dll |
libpq.dll | icuuc53.dll |
libxml2.dll | initdb.exe |
libxslt.dll | isolationtester.exe |
oid2name.exe | libcrypto-1_1-x64.dll |
pg_archivecleanup.exe | libcurl.dll |
pg_basebackup.exe | libcurl.lib |
pg_config.exe | libecpg.dll |
pg_controldata.exe | libecpg_compat.dll |
pg_ctl.exe | libiconv-2.dll |
pg_dump.exe | libintl-9.dll |
pg_dumpall.exe | libpgtypes.dll |
pg_isolation_regress.exe | libpq.dll |
pg_isready.exe | libssl-1_1-x64.dll |
pg_receivexlog.exe | libwinpthread-1.dll |
pg_recvlogical.exe | libxml2.dll |
pg_regress.exe | libxslt.dll |
pg_regress_ecpg.exe | oid2name.exe |
pg_resetxlog.exe | pg_archivecleanup.exe |
pg_restore.exe | pg_basebackup.exe |
pg_standby.exe | pg_config.exe |
pg_test_fsync.exe | pg_controldata.exe |
pg_test_timing.exe | pg_ctl.exe |
pg_upgrade.exe | pg_dump.exe |
pg_xlogdump.exe | pg_dumpall.exe |
pgAdmin3.exe | pg_isolation_regress.exe |
pgbench.exe | pg_isready.exe |
postgres.exe | pg_receivewal.exe |
psql.exe | pg_recvlogical.exe |
reindexdb.exe | pg_regress.exe |
ssleay32.dll | pg_regress_ecpg.exe |
stackbuilder.exe | pg_resetwal.exe |
vacuumdb.exe | pg_restore.exe |
vacuumlo.exe | pg_rewind.exe |
wxbase28u_net_vc_custom.dll | pg_standby.exe |
wxbase28u_vc_custom.dll | pg_test_fsync.exe |
wxbase28u_xml_vc_custom.dll | pg_test_timing.exe |
wxmsw28u_adv_vc_custom.dll | pg_upgrade.exe |
wxmsw28u_aui_vc_custom.dll | pg_verify_checksums.exe |
wxmsw28u_core_vc_custom.dll | pg_waldump.exe |
wxmsw28u_html_vc_custom.dll | pgbench.exe |
wxmsw28u_stc_vc_custom.dll | postgres.exe |
wxmsw28u_xrc_vc_custom.dll | psql.exe |
zic.exe | reindexdb.exe |
zlib1.dll | stackbuilder.exe |
vacuumdb.exe | |
vacuumlo.exe | |
wxbase28u_net_vc_custom.dll | |
wxbase28u_vc_custom.dll | |
wxbase28u_xml_vc_custom.dll | |
wxmsw28u_adv_vc_custom.dll | |
wxmsw28u_aui_vc_custom.dll | |
wxmsw28u_core_vc_custom.dll | |
wxmsw28u_html_vc_custom.dll | |
wxmsw28u_xrc_vc_custom.dll | |
zic.exe | |
zlib1.dll |
PostgreSQL не запускается служба.
Для начала нужно убедится что у папки PostgreSQL есть права необходимые для корректной работы базы данных. Если права папке выданы и служба все ещё не запускается то можно переходить к следующему шагу.
Следующий шаг это сбросить лог.
Для сброса лога:
1. Запустите командную строку (не от имени администратора).
2. Зайдите в папку «bin» (по умолчанию C:\Program Files (x86)\PostgreSQL\9.3\bin), найдите и перетащите
pg_resetxlog.exe в командную строку, дописав в начале созданной строки «CD». Это нужно для того, чтобы перейти в
нужную директорию. И нажмите ENTER.
3. Затем введите в команду pg_resetxlog.exe -f «C:\Program Files (x86)\PostgreSQL\9.3\data» (где C:\Program
Files\PostgreSQL\9.3\data — это путь по умолчанию).
4. После очистки лога запустите службу PostgreSQL. Если с первого раза служба не запустилась, то потребуется еще
раз чистить и снова пробовать.
Если при первом вызове службы была ошибка:
pg_resetxlog: lock file «postmaster.pid» exists
Is a server running? If not, delete the lock file and try again.
То удалите файл «postmaster.pid» (по умочанию C:\Program Files\PostgreSQL\9.3\data\postmaster.pid), чтобы сброс лога нормально отработал.
Техническая поддержка ПО: it@tenso-m.ru
Сервисный центр: srv@tenso-m.ru
Другие вопросы и пожелания: faq@tenso-m.ru
Всех приветствую, подскажите, скачал и установил PostgreSQL 12.1.3 для Windows, для изучения, система у меня — Windows 7×64 со всеми обновами, уже на этапе установки выскакивает ошибка что невозможно законнектится к службе постргреса,
если продолжить то потом при входе в админскую панель в браузере с помощью pgAdmin4 невозможно создать сервер — коннект к службе так же невозможен
Если открыть панель служб винды то там служба postgresql-x64-12 висит со статусом остановлена — запустить её вручную неудается — выходит сообщение — служба была запущена и сразу установлена, пробовал скопировать строчку запуска службы —
«C:\PostgreSQL\12\bin\pg_ctl.exe» runservice -N «postgresql-x64-12» -D «C:\PostgreSQL\12\data» -w
И вставил её в командную строку — ни в обычной ни в админской коммандн.строке не запускается:
C:\>»C:\PostgreSQL\12\bin\pg_ctl.exe» runservice -N «postgresql-x64-12» -D «C:\PostgreSQL\12\data» -w
pg_ctl: не удалось запустить службу «postgresql-x64-12» (код ошибки: 1063)
Пробовал гуглить — проблема ненова но в основном она у всех после длительного использования — кэш почистили настройки некоторые сбросили — и все запустилось, а у меня нечего чистить и сбрасывать — чистая новая установка, странно, что делать?
Решение вопроса:
1.Необходимо проверить запущен ли процесс в диспетчере задач
2.Порт который использует Postgresql 5432. Чтобы проверить используется ли он, необходимо запустить командную строку от имени администратора и ввести команду:
netstat -ano | findstr :5432
3.Перейти в командной строке в каталог где лежит pg_ctl. Для этого необходимо ввести команду:
cd C:\Program Files\PostgreSQL\10.5-24.1C\bin
4.Остановить работу сервера postgresql командой:
pg_ctl stop -D «D:\PostgreSQL\10.5-24.1C\data»
Где «D:\PostgreSQL\10.5-24.1C\data» — это путь где лежат базы данных Postgresql.
5.Теперь можно запустить службу корректно через консоль «Службы»
PostgreSQL служба не запускается
☑
0
2dolist
07.07.17
✎
11:22
Добрый день. Такая проблема. Изменил настройки postgresql.conf на рекомендуемые с итс и теперь не получается запустить службу PostgreSQL.
Версия постгре 9.4.2-1.1Cx64.
Вин сервер 2012
Ошибка: Служба PostgreSQL на «Локальный компьютер» была запущена и затем остановлена. Некоторые службы автоматически останавливаются, если они не используются другими службами.
Подскажите что делать?
1
Вафель
07.07.17
✎
11:24
не может такого быть. ПГ работает как часы
2
Вафель
07.07.17
✎
11:24
Хотя нет, это только на линуксе
3
МихаилМ
07.07.17
✎
11:25
верните настройки .
4
2dolist
07.07.17
✎
11:28
(3) вернул, всё равно так
5
2dolist
07.07.17
✎
11:29
переустановить чтоль постгре
6
Вафель
07.07.17
✎
11:32
а порты не заняты?
7
2dolist
07.07.17
✎
11:34
а как проверить
8
Hmster
07.07.17
✎
11:36
была как-то проблема с перезапуском службы. Во время отключения процессы продолжали висеть. Надо были либо руками убить процессы или рестартнуть систему
9
2dolist
07.07.17
✎
11:36
Так я рестартнул — всё равно
10
2dolist
07.07.17
✎
11:37
Вот в логе последнем в pg_log
2017-07-07 11:29:10 AZST LOG: database system was shut down at 2017-07-07 11:29:09 AZST
2017-07-07 11:29:10 AZST LOG: database system is ready to accept connections
2017-07-07 11:29:10 AZST LOG: autovacuum launcher started
2017-07-07 13:12:04 AZST LOG: received fast shutdown request
2017-07-07 13:12:04 AZST LOG: aborting any active transactions
2017-07-07 13:12:04 AZST LOG: autovacuum launcher shutting down
2017-07-07 13:12:04 AZST LOG: shutting down
2017-07-07 13:12:04 AZST LOG: database system is shut down
11
2dolist
07.07.17
✎
11:38
при новых запусках не пишет ничего в логах
12
Вафель
07.07.17
✎
11:38
netstat
13
2dolist
07.07.17
✎
11:39
(12) а что с ним запускать-то, по адресу чтоль?
14
2dolist
07.07.17
✎
11:40
(12) нет среди запущенных постгре
15
Вафель
07.07.17
✎
11:42
а порты не заняты его?
16
2dolist
07.07.17
✎
11:42
(15) а как узнать?
17
2dolist
07.07.17
✎
11:43
ну он бы тогда наверное на другое ругался, а ни на то, что служба запущена, а зетем остановлена
18
Вафель
07.07.17
✎
11:44
Говорят это проблема с правами. От чьего имени стартуешь?
19
2dolist
07.07.17
✎
11:45
(18) с правами админа
20
Вафель
07.07.17
✎
11:46
попробуй local system
21
2dolist
07.07.17
✎
11:47
(20) это где прописать, в самой службе? Там написано, кстати, в закладке «Вход в систему» заходить с учётки USR1CV8
22
Вафель
07.07.17
✎
11:49
(21) И это ты называешь админские права?
23
Вафель
07.07.17
✎
11:50
мне кажется у этого пользователя нет прав на каталог с бд
24
2dolist
07.07.17
✎
11:50
это в самой службе в свойствах. В постгрешке же надо под своей учёткой запускать службу
25
2dolist
07.07.17
✎
11:55
Есть права
26
2dolist
07.07.17
✎
11:56
блин, вообще не пойму что делать и почему упало и как восстанавливать. Беда.
27
Адинэснег
07.07.17
✎
12:02
как там лустин говорил, нет pg админа — нехер пытаться
28
Вафель
07.07.17
✎
12:02
(26) локал систем уже пробовал?
29
2dolist
07.07.17
✎
12:07
(28) а как, я не понял чем это поможет если у юзера есть права на папку
30
2dolist
07.07.17
✎
12:07
(27) ну что значит нехрен пыпаться, если базы постоянно падают с нехваткой памяти.
31
Вафель
07.07.17
✎
12:08
(29) Если ты так вопросы решаешь, то тебе лучше просто удалить это ПГ
32
zva
07.07.17
✎
12:08
(19) с правами админа PG не запустится, куда учетка postgres делась?
33
inkvizitr
07.07.17
✎
12:11
открой диспечер задач, и прибей все зависшие процессы postgre
34
2dolist
07.07.17
✎
12:12
(32) в самой службе постгре указан запуск от имени USR1CV8, у которого есть доступ к папке с файлами постгре и базами
35
2dolist
07.07.17
✎
12:12
(33) нету их — я сервак перезапускал даже
36
inkvizitr
07.07.17
✎
12:16
(35) укажи в службе самого крутого пользователя по правам, потом открой hd_pga.conf и добавь там host all all 192.168.0.0/24 trust
37
zva
07.07.17
✎
12:18
(34) Там мало доступа, учетка, от которой стартует служба postgre НЕ ДОЛЖНА быть в группе Администраторов, и должна быть ВЛАДЕЛЬЦЕМ некоторых каталогов, например папки с базами. Без этого служба будет останавливаться.
38
Вафель
07.07.17
✎
12:19
(37) не может такого быть, чтоб добавление в админы убивало службу
39
2dolist
07.07.17
✎
12:28
(36) попробовал дать доступ, разницы никакой
40
2dolist
07.07.17
✎
12:38
удалил вообще конф и стала запускаться служба…
41
2dolist
07.07.17
✎
12:38
но настройки-то нужны какие-то
42
2dolist
07.07.17
✎
12:39
но база всё равно не доступна…
43
Вафель
07.07.17
✎
12:40
типовой конф подложи
44
2dolist
07.07.17
✎
12:40
где б его взять
45
inkvizitr
07.07.17
✎
13:41
(44) установи postgres на другой машине
46
2dolist
07.07.17
✎
13:47
так, я переформировал postgresql.conf, служба запустилась, базы подрубились.
Я попробовал разобраться в каком именно месте конфа была ошибка — оказалось, что на строке
effective_io_concurrency = 2
по умолчанию она на 1 и закомменчена. Если её хотя бы раскомментить — служба уже не запускается
47
2dolist
07.07.17
✎
13:48
а эта строка есть в советах по настройке постгре вот тут:
https://its.1c.ru/db/metod8dev#content:5866:hdoc
48
Вафель
07.07.17
✎
13:58
49
Вафель
07.07.17
✎
13:59
сообщение 51
50
Вафель
07.07.17
✎
14:00
Это проблемы чисто ПГ под винду
51
2dolist
07.07.17
✎
14:05
Вдогонку вопрос. Надо ли
52
2dolist
07.07.17
✎
14:05
set merge_join off
53
Вафель
07.07.17
✎
14:07
(52) но зачем?
54
2dolist
07.07.17
✎
14:09
(53) набрёл на советы по его отключению при ошибках с нехваткой памяти
55
Вафель
07.07.17
✎
14:10
(54) ты понимаешь что такое мердж джойн?
56
2dolist
07.07.17
✎
14:14
смутно. Я так понимаю, что нужно для планировщика. Создаёт 2 ряда, потом их соединяет и работает уже с соединениями. В итоге, работа быстрее, но памяти на соединение жрёт больше.
57
2dolist
07.07.17
✎
14:31
прочитал описание, вроде как штука хорошая в плане оптимизации огромных запросов. Надо будет потестить разницу как-нибудь.
58
ansh15
07.07.17
✎
14:58
59
ansh15
07.07.17
✎
15:00
(56) Просто добавить памяти.
60
2dolist
07.07.17
✎
15:50
(59) 16 гигов — куда ещё. Базы-то мизерные, гигов по 5.
61
2dolist
07.07.17
✎
15:50
ну 10 макс
62
2dolist
07.07.17
✎
16:01
(59) или речь о настройке work_mem?
63
ansh15
07.07.17
✎
16:52
(60) http://evtuhovich.ru/blog/2013/03/20/big-cache/
Весьма доступно о том, для чего не помешает больше памяти.
64
Господин ПЖ
07.07.17
✎
16:56
просто откиньтесь на спинку стула.
65
rphosts
07.07.17
✎
17:39
(46) в следующий раз смотри журнал событий виндовс — там всё что надо написано