Postgres: перенос каталога с БД на новое место

После установки postgresql возникла необходимость перенести каталог с базами данных в более подходящее место, чем то, которое назначено по умолчанию. В Arch Linux базы хранятся в каталоге /var/lib/postgres и это не очень хорошо, т. к. при разрастании баз быстро заканчивается место на системном разделе.

Для хранения данных у меня примонтирован отдельный раздел в каталог /devel, вот туда я и буду переносить БД постгреса.
Все действия делаются из-под учётной записи root, либо необходимо использовать утилиту sudo.

  1. Устанавливаем утилиту rsync:
    1
    
    pacman -S rsync
    pacman -S rsync
  2. Останавливаем сервис postgres:
    1
    
    systemctl stop postgresql
    systemctl stop postgresql
  3. С помощью rsync переносим данные:
    1
    
    rsync -av /var/lib/postgres /devel
    rsync -av /var/lib/postgres /devel
  4. Редактируем сервис postgresql:
    1
    
    systemctl edit postgresql
    systemctl edit postgresql

    Вот так это получилось у меня:

    1
    2
    3
    
    [Service]
    Environment=PGROOT=/devel/postgres
    PIDFile=/devel/postgres/data/postmaster.pid
    [Service]
    Environment=PGROOT=/devel/postgres
    PIDFile=/devel/postgres/data/postmaster.pid

  5. Запускаем сервис postgres:
    1
    
    systemctl start postgresql
    systemctl start postgresql

В каталоге /devel/postgres/data должен появиться файл postmaster.pid — это означает, что всё прошло успешно. Ну, вот и всё.

Bookmark the permalink.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *