При установке на 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