Переключение сервера 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 stop vision_core
    systemctl stop vision_alertcollector
    systemctl stop vision_backup
    systemctl stop vision_taskdaemon
    

Проверка#

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

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