Перенести базы PostgreSQL на другой диск Windows

Перенести базы PostgreSQL на другой диск Windows

 

Если у вас установлен Postgres в конфигурации по умолчанию, то его базы хранятся в Program Files. Если есть необходимость освободить место на системном диске C, то можно перенести базы данных Postgres на другой диск. Общий алгоритм такой (включая linux системы):

  • Останавливаем сервис СУБД
  • Перемещаем базы
  • Меняем конфиг postgres
  • Запускаем сервис СУБД

Для Windows системы:

Заходим в сервисы

Нажимаем WIN+R, и вводим команду

[code]services.msc[/code]

Отключаем службу, относяющуюся к СУБД, например postgresql-x64-9.6 — PostgreSQL Server 9.6. В свойствах службы можно

посмотреть команду запуска.

Свойства службы postgres

В сущности необходимо будет поменять параметр после ключа -D

Заходим в реестр

Нажимаем WIN+R, и вводим команду

[code]regedit[/code]

Ищем ветку служб Windows и наш сервис СУБД, например postgresql-x64-9.6 — PostgreSQL Server 9.6

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services

Меняем ключ реестра ImagePath.

Реестр Windows, служба postgres

Допустим надо указать папку 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 системы:

  • Отключаем службу, относяющуюся к СУБД

    [code]/etc/init.d/postgresql stop[/code]

  • В конфигурационном файле /etc/init.d/postgresql меняем содержимое переменной $PGDATA
  • Копируем/перемещаем базы из старого места в новое
  • Запускаем службу, относяющуюся к СУБД

    [code]/etc/init.d/postgresql start[/code]

    Ссылка по теме:

  • How To Move a PostgreSQL Data Directory to a New Location on Ubuntu 16.04