Как перезапустить службу PostgreSQL после возврата исходной папки данных?

Я пишу несколько пакетных сценариев для создания инкрементных резервных копий кластера PostgreSQL на сервере Windows.

Я скопировал папку Data в другую папку, запустил свои сценарии резервного копирования, остановил службу, удалил папку Data и попытался восстановить базу данных из файлов WAL и тому подобного.

Это не сработало, потому что я скопировал неправильные файлы журналов и не смог снова запустить службу, поэтому я попытался скопировать обратно в исходную папку данных, но я все еще не могу запустить службу.

Первый скрипт, который я запустил, назывался:

pg_basebackup -Fp -D %BACKUPDIR%\full_%CURRENTDATE%

Это была единственная строка, которая фактически взаимодействовала с данными, но не с исходной папкой данных, которую я скопировал заранее.

При попытке снова запустить службу я получаю следующее сообщение об ошибке:

The postgresql-x64-10 - PostgreSQL Server 10 service on Local Computer started and then stopped. 
Some services stop automatically if they are not in use by other services or programs.

Я получил это раньше, когда делал опечатку в файле conf, поэтому я предполагаю, что это просто стандартное сообщение об ошибке, когда чего-то не хватает.


person Anders Jensen    schedule 26.07.2019    source источник


Ответы (1)


Выяснил, что мне пришлось переделать права доступа к папке.

Это делается следующим образом:

<сильный>5. Изменить разрешения для нового каталога данных. Для новой папки словаря данных: щелкните ее правой кнопкой мыши и выберите «Свойства». На вкладке «Безопасность» нажмите «Изменить...», а затем «Добавить...». Введите «Сетевая служба», а затем нажмите «Проверить имена», убедитесь, что у нее есть разрешения на изменение и полный доступ, а затем нажмите «ОК». Не менее важно, чтобы PostgreSQL мог «видеть» каталог данных (см. мой вопрос о ServerFault.StackEx), т. е. он должен иметь доступ для чтения к родительским каталогам над ним. Итак, щелкните правой кнопкой мыши папку pg_db и в разделе «Разрешения безопасности» снова добавьте сетевые службы, но на этот раз потребуются только разрешения «Чтение и выполнение», а также разрешения «Список содержимого папки».

Полный пост — хороший контрольный список для тех, кто сталкивается с похожими проблемами: https://radumas.info/blog/tutorial/2016/08/08/Migrating-PostgreSQL-Data-Directory-Windows..html

person Anders Jensen    schedule 26.07.2019