Сервис Postgres не будет запускаться в Windows после перемещения каталога pgdata

Я следовал этим инструкциям, чтобы переместить каталог данных Postgres из C:\Users\ имя пользователя \Documents\dir\postgres96_data в C:\Users\ имя пользователя \Documents\postgres96_data.

Теперь служба Postgres не запускается. Попытка запустить его вручную приводит к следующему сообщению (свободно переводится с pt-br):

"Служба postgres-x64-9.6 на локальном компьютере была запущена, а затем остановлена. Некоторые службы останавливаются автоматически, если они не используются другими службами или программами".

Я попытался (успешно) запустить базу данных в cmd.exe, с помощью команды

"C:\Program Files\PostgreSQL\9.6\bin\pg_ctl.exe" start -D "C:\Users\username\Documents\postgres96_data" -w

Журнал был:

2017-02-20 07:33:26 BRT LOG:  database system was interrupted; last known up at 2017-02-18 09:52:00 BRT
2017-02-20 07:33:27 BRT FATAL:  the database system is starting up
... 
2017-02-20 07:35:10 BRT FATAL:  the database system is starting up
2017-02-20 07:36:19 BRT LOG:  database system was not properly shut down; automatic recovery in progress 
2017-02-20 07:36:19 BRT LOG: invalid record length at 6/438EBB88: wanted 24, got 0 
2017-02-20 07:36:19 BRT LOG:  redo is not required 
2017-02-20 07:36:19 BRT LOG: MultiXact member wraparound protections are now enabled 
2017-02-20 07:36:19 BRT LOG:  sistema de banco de dados está pronto para aceitar conexões [database system is ready to accept conections, free translation] 
2017-02-20 07:36:21 BRT LOG:  autovacuum launcher started

ПРЕДЫДУЩЕЕ ИССЛЕДОВАНИЕ

Ссылка на сайт

Ссылка на сайт

Ссылка на сайт

Ссылка на сайт

2 ответа

Вам нужно изменить определение сервиса. Служба все еще использует старый каталог данных.

Чтобы изменить сервис, удалите его и создайте заново:

pg_ctl unregister -N postgres-x64-9.6

Затем заново создайте его, используя новый каталог данных:

pg_ctl register -N postgres-x64-9.6 -D "C:\Users\username\Documents\postgres96_data"

Это предполагает, что вы использовали установку по умолчанию, при которой служба запускается с использованием встроенной "Сетевой учетной записи". Если это не так, вам нужно указать имя пользователя и пароль с -U а также -P Параметры при регистрации сервиса.

Предоставление полного доступа к каталогу данных вошедшему в систему пользователю сработало.

Data_Directory - Свойства - Безопасность - Добавить пользователя - Предоставить полное разрешение

Другие вопросы по тегам