Пишу этот опус, так как в сети маловато информации по обновлению. Есть стандартная инструкция, в которой не раскрыты многие мелочи.
Имеем
- биллинг UTM5 версии 5.2-008. У биллинга 6-летняя 40 гигабайтная база, к которой не применялись самопальные скрипты по архивации огромных таблиц. Переход на 5.3-003 требуется из-за официальной архивации и увеличившегося функционала.
- Система FreeBSD localhost 9.3-RELEASE FreeBSD 9.3-RELEASE #0: Sun Nov 23 21:43:56 MSK 2014 @ :/usr/obj/usr/src/sys/GENERICIPFW amd64
1. Останавливаем биллинг
/usr/local/etc/rc.d/utm5_core.sh stop
/usr/local/etc/rc.d/utm5_rfw.sh stop
2. Делаем бекап базы данных. Воспользуемся стандартным скриптом в каталоге /netup/utm5/bin/utm5_backup.sh
/netup/utm5/bin/utm5_backup.sh
3. После слова Done проверяем наличие бекапа базы в каталоге /netup/utm5/backup/ , копируем бекап на внешний носитель и делаем резервную копию каталога netup
cp -R /netup/ /netup_old
Сделайте копии и скриптов запуска (вдруг понадобится откатиться на старую версию)
° /usr/local/etc/rc.d/utm5_core.sh ° /usr/local/etc/rc.d/utm5_radius.sh ° /usr/local/etc/rc.d/utm5_rfw.sh
4. Удалим старый UTM5
pkg info
(если в списке нет utm5-2.1.008, то удаляем вручную все файлы из каталога /netup/utm5/ и )
pkg delete utm5-2.1.008
5. Далее по официальной инструкции необходимо установить новый utm5.3-003
pkg add utm5-3.003.tbz
Но у меня этот вариант почему-то не прошел. Я просто разархивировал utm5-3.003.tbz и распихал все в каталог /netup/utm5/ , а скрипты запуска utm5_core.sh, utm5_radius.sh и utm5_rfw.sh в каталог /usr/local/etc/rc.d/
6. Далее воспользуемся грамотной статьей http://linuxsnippets.net/ru/node/360 и обработаем старую базу данных под новое ядро биллинга
ВНИМАНИЕ: Проверьте версию mysql. Если она ниже 5.6 желательно сделать обновление (по требованию разработчиков). У меня все работает на 5.1.73.
7. Обновим структуру (операция проходит быстро)
mysql -p -f UTM5 < /netup/utm5/UTM5_MYSQL_update.sql
8. Обновим индексы (ВНИМАНИЕ: начинается самая медленная операция. Длилась она больше 14 часов на базе 40Гб). Если у вас нестабильное интернет-соединение, воспользуйтесь утилитой screen, чтобы не потерять связь с терминалом.
ВНИМАНИЕ: Перед обновлением необходимо увеличить параметр mysql-сервера max_allowed_packet до 32M . Его нужно поправить в файле /etc/my.cnf и перезапустить mysql-сервер. Сам забыл поправить, но на 10М все отработало без ошибок.
mysql -p -f UTM5 < /netup/utm5/UTM5_indexes.sql
Чтобы понять, чем конкретно занят mysql-сервер, нужно зайти в его консоль (например, с другого SSH- или виртуального screen терминала) и выполнить запрос show processlist;
mysql
show processlist;
9. Когда processlist будет пуст, значит обновление индексов завершилось.
10. Правим файлы rfw5.cfg и utm5.cfg (данные можно взять из предварительно сохраненных файлов в директории /netup_old )
В utm5.cfg я внес
verify_database=enable
verify_archive_tables=enable
и заккоментировал verify_database_index=enable
11. Переносим свои скрипты (если есть) из каталога /netup_old в каталог /netup/utm5/ на свои места.
11.1 Копируем в каталог /netup/utm5/ новый ключ reg.sql (его нужно взять в личном кабинете на сайте UTM5. Файл должен подцепиться автоматически при старте биллинга. Можно залить ключ в базу и вручную)
12. Пробуем стартовать биллинг
/usr/local/etc/rc.d/utm5_core.sh start
13. RFW у меня не поднялся сам. Приходится запускать вручную
/usr/local/etc/rc.d/utm5_rfw.sh start
14. Смотрим, появились ли процессы
sockstat -4
15. Для работы с новым биллингом качаем из личного кабинета на сайте UTM5 новую java-админку.
Комментировать