Перейти к основному содержанию

Перемещение базы данных postgresql в Ubuntu 18.04 LTS

postgresql ubuntu

При установке на Ubuntu zabbix-server база данных по умолчанию пишется в папку /var/lib/postgresql. Со временем база растёт и поднимается вопрос переноса её на другой раздел диска. Перенесём базу данных в /opt/postgresql.

Требования

  • ОС Ubuntu 18.04 LTS. Или Ubuntu 16.04.
  • Работаем из-под root.
  • Сервер PostgreSQL
  • Сервер zabbix. Не обязательно.

Подготовка

Проверим где находится текущая БД postgresql.

sudo -u postgres psql

psql (9.5.14)
Type "help" for help.

postgres=# SHOW data_directory;
        data_directory
------------------------------
 /var/lib/postgresql/9.5/main
(1 row)

БД находится в папке /var/lib/postgresql/9.5/main.

Для переноса БД нам понадобится rsync:

apt-get install rsync

Убедимся что существует директория /opt.

Остановка сервисов

service zabbix-server stop
systemctl stop postgresql

Проверка статуса postgresql.

systemctl status postgresql

Ищем строку "Stopped PostgreSQL RDBMS."

Сервисы остановлены.

Перенос файлов базы данных

rsync -av /var/lib/postgresql /opt

После переноса переименуем старую папку, на всякий случай:

mv /var/lib/postgresql/9.5/main /var/lib/postgresql/9.5/main.bak

Настройка конфигурации postgresql

Правим файл postgresql.conf:

vim /etc/postgresql/9.5/main/postgresql.conf

Изменяем значение data_directory:

data_directory = '/opt/postgresql/9.5/main'

Запуск сервисов

systemctl start postgresql

Проверяем где находится текущая БД postgresql.

sudo -u postgres psql

psql (9.5.14)
Type "help" for help.

postgres=# SHOW data_directory;
        data_directory
------------------------------
 /opt/postgresql/9.5/main
(1 row)

БД находится в папке /opt/postgresql/9.5/main.

Запускаем zabbix-server.

service zabbix-server start

Удаление ненужных файлов

rm -Rf /var/lib/postgresql/9.5/main.bak

Теги

 

Похожие материалы

Zabbix — мониторинг очередей сообщений в Linux

Поступила задача мониторить очереди сообщений в linux. Стандартными средствами сделать можно только через system.run(), однако, она по умолчанию отключена и использовать её небезопасно. Будем делать с помощью пользовательских переменных.

Теги