Смена сервера PostgreSQL

По умолчанию Визион использует для хранения служебной БД сервер PostgreSQL, развёрнутый на том же узле, что и Визион.Сервер.

Также возможно использование следующих решений:

На период миграции работа Визион.Сервер будет приостановлена.

Перед началом работы

Чтобы сократить время миграции, подготовьте внешний сервер PostgreSQL заранее:

  • Убедитесь, что сервер имеет виртуальный IP-адрес или доменное имя, всегда указывающие на мастер.

  • Убедитесь, что мастер доступен из сети Визион по указанному виртуальному IP-адресу или доменному имени.

  • Создайте в СУБД роль vision:

    CREATE ROLE vision WITH
      LOGIN
      PASSWORD '<password>'
      CREATEDB
      SUPERUSER;
  • Создайте в СУБД базу данных vision_db:

    CREATE DATABASE vision_db
      OWNER vision
      ENCODING 'UTF8'
      LC_COLLATE 'ru_RU.UTF-8'
      LC_CTYPE 'ru_RU.UTF-8'
      TEMPLATE template0;

Миграция

На сервере Визион выполните следующие действия:

  1. Остановите сервисы, использующие служебную БД:

    systemctl stop vision_core
    systemctl stop vision_alertcollector
    systemctl stop vision_backup
    systemctl stop vision_taskdaemon
  2. Создайте резервную копию служебной БД:

    pg_dump -h 127.0.0.1 -p 5432 -U <user> vision_db -F tar > vision_db.tar

    Здесь:

    • <user> — имя пользователя-владельца служебной БД;

    • vision_db — название служебной БД;

    • vision_db.tar — имя файла с архивом резервной копии.

  3. Остановите локальный сервер PostgreSQL и отключите его запуск при загрузке ОС:

    systemctl stop postgresql.service
    systemctl disable postgresql.service
  4. Восстановите данные из резервной копии во внешнюю СУБД:

    pg_restore -h <server> -p 5432 -U vision -d vision_db -c vision_db.tar

    Здесь: <server> — виртуальный IP-адрес или доменное имя, указывающие на мастер внешнего сервера PostgreSQL.

  5. В хранилище секретов в значении ключа vault.database.dsn укажите учётные данные для подключения к внешнему серверу.

    Пример заполнения
    vault.database.dsn: 'postgresql://vision:<password>@<host>:5432/vision_db'
  6. Обновите конфигурацию компонентов Визион:

    /opt/skala-r/vision/tools/update_server_configs.sh
  7. Запустите сервисы Визион:

    systemctl start vision_core
    systemctl start vision_alertcollector
    systemctl start vision_backup
    systemctl start vision_taskdaemon

Проверка

Чтобы убедиться в правильности настроек и успешности миграции, проверьте состояние сервисов, использующих служебную БД:

systemctl status vision_core.service vision_alertcollector.service vision_backup.service vision_taskdaemon.service