Двигаем слона

(Хотим запускать кластер не из папки C:\Program Files\PostgreSQL\8.3\data)

Дано:

  1. установлен сервер постгрес с initdb
  2. база в папке C:\Program Files\PostgreSQL\8.3\data

Вариант 1 (гуманный)

Останавливаем сервис.
Папку с базой C:\Program Files\PostgreSQL\8.3\data переименовываем или перемещаем в нужное место, например C:\Program Files\PostgreSQL\8.3\cluster1
Даем доступ на новую папку пользователю postgres (если вдруг его не оказалось)
Открываем реестр Regedit
Ищем ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\pgsql-8.3
Параметр ImagePath меняем
c
"C:\Program Files\PostgreSQL\8.3\bin\pg_ctl.exe" runservice -w -N "pgsql-8.3" -D "C:\Program Files\PostgreSQL\8.3\data\"
на
"C:\Program Files\PostgreSQL\8.3\bin\pg_ctl.exe" runservice -w -N "pgsql-8.3" -D "C:\Program Files\PostgreSQL\8.3\cluster1\"
Запускаем сервис.

Вариант 2 (с убийствами)

Останавливаем сервис.
Папку с базой C:\Program Files\PostgreSQL\8.3\data переименовываем или перемещаем в нужное место, например C:\Program Files\PostgreSQL\8.3\cluster1
Даем доступ на новую папку пользователю postgres (если вдруг его не оказалось)
Запускаем командную строку cmd
Убиваем сервис
sc delete pgsql-8.3
Создаем новый сервис (поменять параметры на подходящие, postgres - пользователь ОС)
sc create pgsql-8.3 start= auto DisplayName= "PostgreSQL Cluster#1" obj= ".\postgres" password= "123" binPath= "C:\Progra~1\PostgreSQL\8.3\bin\pg_ctl.exe runservice -w -N "pgsql-8.3" -D "C:\Progra~1\PostgreSQL\8.3\cluster1\""
Запускаем его.

Back to top

(С) Виктор Вислобоков, 2008-2010