Перенести базы PostgreSQL на другой диск Windows
Если у вас установлен Postgres в конфигурации по умолчанию, то его базы хранятся в Program Files. Если есть необходимость освободить место на системном диске C, то можно перенести базы данных Postgres на другой диск. Общий алгоритм такой (включая linux системы):
- Останавливаем сервис СУБД
- Перемещаем базы
- Меняем конфиг postgres
- Запускаем сервис СУБД
Для Windows системы:
- Заходим в сервисы
Нажимаем WIN+R, и вводим командуservices.msc
Отключаем службу, относяющуюся к СУБД, например postgresql-x64-9.6 - PostgreSQL Server 9.6. В свойствах службы можно посмотреть команду запуска. В сущности необходимо будет поменять параметр после ключа -D
- Заходим в реестр
Нажимаем WIN+R, и вводим командуregedit
Ищем ветку служб Windows и наш сервис СУБД, например postgresql-x64-9.6 - PostgreSQL Server 9.6
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services
- Меняем ключ реестра ImagePath.
Допустим надо указать папку D:\databases\PostgreSQL\9.6. Тогда, вместо
"C:\Program Files\PostgreSQL\9.6\bin\pg_ctl.exe" runservice -N "postgresql-x64-9.6" -D "C:\Program Files\PostgreSQL\9.6\data" -w
прописываем:
"C:\Program Files\PostgreSQL\9.6\bin\pg_ctl.exe" runservice -N "postgresql-x64-9.6" -D "D:\databases\PostgreSQL\9.6" -w
- Копируем/перемещаем базы из старого места в новое
- Запускаем службу
Для linux системы:
- Отключаем службу, относяющуюся к СУБД
/etc/init.d/postgresql stop
- В конфигурационном файле /etc/init.d/postgresql меняем содержимое переменной $PGDATA
- Копируем/перемещаем базы из старого места в новое
- Запускаем службу, относяющуюся к СУБД
/etc/init.d/postgresql start
Ссылка по теме: