Содержание
PostgreSQL
Перемещение каталога данных
Перед началом перемещения необходимо, что бы в системе было определено место в качестве нового местоположения каталога данных PostgreSQL. В моём случае установлен физический диск для этих целей /mnt/sdb1
.
Вы можете подключить не только физический диск, но и любой другой. Всё зависит от Ваших целей и предпочтений.
Когда с новым местоположением всё определено, приступаем к перемещению.
1. Подготовка
Проверяем текущее местоположение каталога данных. Подключаемся к PostgreSQL под пользователем postgres:
sudo -u postgres psql
Выводим текущий каталог на экран:
SHOW data_directory;
Предположим, что наш текущий каталог /var/lib/postgresql/14/main
.
Выходим из psql:
\q
Останавливаем и проверяем статус PostgreSQL:
sudo systemctl stop postgresql sudo systemctl status postgresql
2. Копирование данных
Для того, что бы нам создать полную копию, будем использовать rsync.
Если в системе её нет, устанавливаем, например в Ubuntu:
sudo apt install rsync
Приступаем к копированию… Важно, при указании пути в конце / не ставим, что бы rsync скопировал всю папку postgresql в новое местоположение, а не только её содержимое.
# -a --- перенос всех свойств и прав каталога и подкаталогов # -v --- вывести ход копирования на экран sudo rsync -av /var/lib/postgresql /mnt/sdb1
После того, как rsync успешно выполнил свою работу, путь до каталога будет: /mnt/sdb1/postgresql/14/main
.
Старый каталог не удаляем, а переименовываем, на случай, если пойдёт что-то не так с новым:
sudo mv /var/lib/postgresql/14/main /var/lib/postgresql/14/main.bak
3. Запуск PostgreSQL
Для начала необходимо в файле конфигурации PostgreSQL указать новый каталог с данными:
Открываем /etc/postgresql/14/main/postgresql.conf
любым удобным редактором и меняем путь в строке, как в примере:
...
data_directory = '/mnt/sdb1/postgresql/14/main'
...
Сохраняем файл, запускаем PostgreSQL и проверяем статус:
sudo systemctl start postgresql sudo systemctl status postgresql
После успешного запуска, убедимся, что PostgreSQL использует новый каталог данных. Для этого выполним, как ранее:
sudo -u postgres psql SHOW data_directory;
На экране должен быть указан наш новый путь до каталога.
Выходим:
\q
4. Заключение
Теперь самое важное и заключительное.
После того, как убедились, что всё работает как надо, удаляем старый каталог:
sudo rm -Rf /var/lib/postgresql/14/main.bak
На этом всё!