Иногда, в результате неправильного выключения сервера (пропало электричество, уборщица выдернула вилку из розетки и т.п.) перестает запускаться служба PostgresSQL. При попытке запуска появляется сообщение Служба была запущена, а затем остановлена.
Если до аварийного отключения СУБД работала нормально, то скорее всего такое сообщение возникает из-за ошибки в логах. В этом случае их нужно просто сбросить. Рассмотрим подробнее, как это сделать.
Прежде всего, потребуется определить два адреса:
- Адрес СУБД PostgresSQL. Обычно это папка Program Files. Нас будет интересовать папка Bin. Адрес может отличаться, в зависимость от версии СУБД. Например, он может выглядеть так: C:\Program Files\PostgreSQL\9.4.2-1.1C\bin
- Адрес, где хранятся сами базы данных. По умолчанию, это папка Data в папке с СУБД: C:\Program Files\PostgreSQL\9.4.2-1.1C\data. Но базы данных могут располагаться и по другому адресу. Чтобы точно узнать место расположения баз данных PostgresSQL, нужно зайти в свойства службы и посмотреть на командную строку ее запуска:
Далее нужно запустить командную строку windows и набрать там следующие команды:
- cd «C:\Program Files\PostgreSQL\9.4.2-1.1C\bin» — эта команда осуществляет перевод в папку с приложениями СУБД. Используется первый адрес, который мы определили ранее.
- pg_resetxlog.exe -f «C:\Program Files\PostgreSQL\9.4.2-1.1C\data» — эта команда очищает логи СУБД. Здесь используется второй определенный нами адрес: адрес баз данных. После выполнения этой команды должно появиться сообщение Transaction log reset.
Теперь можно запускать службу PostgresSQL.
Не работает ваша команда, пишет invalid srgument
Напишите, пожалуйста, версию PostgresSQL