Краткое описание
В этой статье будет описано, как обновить старые версии EMS, до актуальных с конвертацией баз данных. Перед началом, , чтобы не прерывать работу действующей системы, необходимо подготовить второй сервер (или виртуальную машину), с установленной системой (для последней версии необходима Ubuntu 22).
Первый шаг создание backup баз данных:
Для создания backup баз данных перейдите в папку /var/ems-backup и выполните скрипт main-dump-rotate.sh:
cd /var/ems-backup sudo ./main-dump-rotate.sh 127.0.0.1 3306 javauser javapassword 10
127.0.0.1 - ip адрес сервера где хранятся базы данных(по умолчанию 127.0.0.1)
3306 - порт взаимодействия с mysql
javauser/javapassword - login и пароль для доступа к mysql
10 - количество дней больше которых предыдущие файлы будут удалены
файл будет создан в папке /var/ems-backup/main с именем:
eltex-ems-backup.[дата и время создания].gz
Шаг второй установка пакета EMS на новый сервер:
Установка производится при помощи скрипта:
chmod 755 eltex-ems-helper-latest.sh sudo ./eltex-ems-helper-latest.sh
Шаг третий загрузка и конвертация баз данных:
до версии 3.33 в EMS использовались базы данных mysql, далее используется mariadb. Команды для этих баз данных идентичны, но есть проблемы при конвертации для определенных версий.
Конвертация происходит путем загрузки backup в актуальную версию баз данных.
Делается это при помощи скрипта ems-restore.sh. в папке /var/ems-backup/main.
Для начала, нужно переместить файл backup в папку со скриптом:
mv [им backup] /var/ems-backup/main cd /var/ems-backup/main sudo ./ems-restore.sh [имя backup]
После загрузки backup может возникнуть ошибка расхождения схем заполнения таблиц баз данных. об этом может соответствовать то, что при попытке запустить апплет сервис eltex-ems будет переходить в статус inactive, и в файле /var/log/eltex-ems/black_box.txt будет сообщение подобного содержания:
[main] ERROR Kernel Server$1.print(line:371). [ EltexException (EltexException.SERVER) : codeError = 1; msg = 'Invalid version '46' of 'eltex_ems' schema. Should be '55'. Please, update eltex-ems-db packet.'; infoObject = 'null' ]
Ошибка исправляется переустановкой пакета eltex-ems-db:
Для того чтобы понять какой версии были установлены пакеты eltex-ems используйте команду:
sudo apt list eltex-ems
Будет выведена следующая информация:
Listing... Done eltex-ems/now 3.35-13244 all [installed,local]
В приведенном примере используется версия 3.35-13244
После определения версии установленного пакета, переходим на сайт eltex-ems-db и находим необходимую версию.
После загрузки пакета на сервер или виртуальную машину установить пакет:
sudo dpkg -i eltex-ems-db_3.35-13244_all.deb