ОС Windows: Не запускается служба PostgreSQL после аварийного выключения или перезагрузки сервера

Публичное пространство

ОС Windows: Не запускается служба PostgreSQL после аварийного выключения или перезагрузки сервера

Инцидент: в ситуации, когда сервер был выключен аварийно, через кнопку выключения или при отсутствии электропитания, то после его включения служба 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. После этого заново остановите процесс. Повтор данного шага вызван тем, что таким образом запуска приложение сервера СУБД корректно завершит недостающие транзакции.

5.
%SET_POSTGRES_BIN%/pg_ctl.exe stop -m fast

8. После выполненных шагов по перезапуску и правильной остановке экземпляра СУБД запустите службу PostgreSQL.

Для PostgreSQL 9.4
net start postgresql-x64-9.4
Для PostgreSQL 11
net start postgresql-x64-11

Служба не запускается. Есть сообщения об ошибках. Отсутствуют исполняемые файлы и DLL-библиотеки СУБД

В некоторых случаях после аварийной перезагрузки или в результате срабатывания антивирусных программ при запуске ОС Windows несколько файлов, которые необходимы для работы СУБД PostgreSQL могут отсутствовать. Это может объясняться критическим сбоем ОС.

При попытке использовать способ для запуска служб и инициирования процесса pg_ctl.exe, будет отображаться сообщение о его отсутствии или недостающих файлов библиотек.

1. Запустите скрипт, с помощью которого, проверьте, что для данной версии СУБД присутствуют все компоненты и файлы, которые входят в состав.

2. Скачайте и разместите файл скрипт в папку с PostgreSQL: {Disk}:/Папка_PostgreSQL/bin/.

  • PostgreSQL 11: .

  • PostgreSQL 9: .

3. Запустите файл скрипта. В результате выполнения будет сформирован файл отчета report.txt.

4. Откройте файл отчета и проверьте, что все компоненты присутствуют.

Обязательно должны присутствовать такие библиотеки и исполняемые файлы, а также все библиотеки DLL.

  • libintl-9.dll

  • pg_ctl.exe

  • postgres.exe

  • psql.exe

5. Если какие-либо файлы отсутствуют. Тогда загрузите архив для соответствующей версии PostgreSQL и скопируйте недостающие файлы в папку СУБД {Disk}:/Папка_PostgreSQL/bin/.

6. После копирования недостающих файлов:

  1. Остановите службы сервера приложений SetRetail10 и МУК.

  2. Запустите службу PostgreSQL.

  3. Запустите службы сервера приложений 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