Skip to content

База данных в Watcher

В этом разделе приведены инструкции по решению отдельных задач поддержки базы данных, используемой в Watcher.

Установка и первичная настройка

  • Для установки PostgreSQL необходимо в консоли под пользователем root выполнить команду:
apt install postgresql
  • Создайте пользователя и базу данных. Для этого выполните по порядку эти команды в консоли. Сначала создадим пользователя с именем vsaas:
sudo -u postgres createuser -P vsaas

Система предложит ввести пароль, который будет у пользователя vsaas:

Enter password for new role: (придумайте и введите пароль супер-админа)

После того, как вы введете пароль, нужно сделать это ещё раз:

Enter it again: (повторите пароль супер-админа)

  • Создайте базу данных vsaas_production с владельцем-созданным пользователем vsaas:
sudo -u postgres createdb -O vsaas -e -E UTF8 -T template0 vsaas_production

Ответ системы в случае успешного создания базы данных:

CREATE DATABASE vsaas_production OWNER vsaas ENCODING 'UTF8' TEMPLATE template0

Далее необходимо отредактировать путь до базы данных, перезагрузить Flussonic и восстановить резервную копию (вернуться к инструкции по миграции.

Резервная копия

Сделать резервную копию базы данных можно с помощью утилиты pg_dump:

sudo -u postgres pg_dump vsaas_production > vsaas_production-$(date +%s)backup_dump.sql

Note

При выполнении этой команды из-под root может быть выведена ошибка вида could not change directory to "/root": Permission denied. Резервная копия при этом все равно будет создана. Чтобы избежать ошибки, можно использовать из-под root команду pg_dump -h localhost -d vsaas_production -U vsaas > vsaas_production-$(date +%s)backup_dump.sql

В результате будет создан файл с названием вида vsaas_production-1630050597backup_dump.sql, где число — это Unix-время на момент создания резервной копии.

Восстановление из резервной копии:

sudo -u postgres psql vsaas_production < vsaas_production-1630050597backup_dump.sql

Caution

Настоятельно рекомендуется настроить регулярное автоматическое резервное копирование БД.

Пример настройки резервного копирования по расписанию

Простейшим способом настроить регулярное резервное копирование является инструмент cron.

Выполните в командной строке

crontab -e

При первом запуске система предложит выбрать редактор, с помощью которого вы хотите открыть файл конфигурации cron. Рекомендуем использовать nano, он первый в списке:

Choose 1-4 [1]: 1

В конец файла добавьте, например, такую строку

0 5 * * 1 sudo -u postgres pg_dump vsaas_production > /root/vsaas_production-backup-$(date +\%s).sql

Данное правило будет запускать процесс создания резервной копии базы данных и сохранять его в директории /root в 05:00 каждый понедельник. Чтобы настроить другую периодичность, отредактируйте параметры в начале команды. Подробнее см. здесь

После редактирования нажмите Ctrl+O для сохранения, а затем Ctrl+X для выхода из редактора.

Миграция с SQLite на PostgreSQL

  • Миграция необходима начиная с версии Watcher 19.03

  • Сделайте бэкапы этих файлов:

    /etc/flussonic/flussonic.conf

    /opt/flussonic/priv/vsaas.db

  • Установите последнюю версию Flussonic Watcher с поддержкой SQLite (19.05). Выполните в командной строке следующие команды:

    apt update

    apt install flussonic-watcher=19.05 flussonic=19.05 flussonic-erlang=21.3.6

    service flussonic restart

    Подробнее о процессе обновления

  • Сделайте бэкап

  • Установить PostgreSQL

    apt install postgresql

  • Перезагрузите сервис Flussonic:

    service flussonic restart

  • Восстановите данные из файла, созданного утилитой для миграции:

    /opt/flussonic/contrib/watcher backup restore -d 20190215201434

  • Зайдите на веб-интерфейс и проверьте, что все работает (все данные на месте).

Обновление структуры БД

Иногда новая версия Flussonic Watcher требует для работы изменений в структуре своей базы данных. В этом случае web-интерфейс покажет сообщение:

Обновление структуры БД

Caution

В первую очередь необходимо сделать резервную копию базы данных и обратится в нашу службу поддержки support@flussonic.com

Для резервного копирования можно использовать утилиту watcher.