Изначально лучше монтировать расположение директории данных по умолчанию (как правило /var/lib) на второй раздел, чтобы не переносить базу после установки PostgreSQL.
Для переноса:
- Получить пути до конфигурационного файла postgresql.config и директории с БД:
зайти в клиент psql
sudo -u postgres psql
получить путь до postgresql.config
show config_file;
получить путь до директории с БД
show data_directory;
Остановить службу postgresql.service
sudo systemctl stop postgresql.service
- Создать директорию для размещения БД (если еще нет) и выдать необходимые права:
создать директорию
sudo mkdir -p /new/data/location/
сменить владельца
sudo chown -R postgres:postgres /new/data/location/
установить уровень доступа
sudo chmod 700 /new/data/location/
Скопировать данные из директории с БД в новую директорию
sudo rsync -av <data_directory из шага 1> /new/data/location/
Открыть файл postgresql.config
sudo nano <config_file из шага 1>
Заменить путь на новый
data_directory = '/new/data/location'
Проверить указан ли старый путь в postgresql.service. Исправить на новый если указан.
sudo nano /lib/systemd/system/postgresql.service
Если изменялся файл postgresql.service перезагрузить менеджер конфигурации systemd
sudo systemctl daemon-reload
Запустить службу postgresql.service
sudo systemctl start postgresql.service
- Проверить изменился ли путь:
зайти в клиент psql
sudo -u postgres psql
проверить путь в data_directory
show data_directory;
- должен быть указан новый путь