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

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

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

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

  1. Заходим в сервисы
    Нажимаем WIN+R, и вводим команду
    services.msc

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

  2. Заходим в реестр
    Нажимаем WIN+R, и вводим команду
    regedit

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

    HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services
  3. Меняем ключ реестра 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
  1. Копируем/перемещаем базы из старого места в новое
  2. Запускаем службу

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

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

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

Похожие записи

Команда su в Ubuntu

Чтобы не набирать постоянно sudo для повышения привилегии выполнения команды в Ubuntu можно использовать специальную команду для перевода пользователя в сессию под root-ом.
08 июня 2017 г. в Linux

Linux. Команда sed

Команда sed - это потоковый редактор текста. Вставляет/изменяет/добавляет текст не открывая файл визуально. Обычно используется в скриптах.