Вопрос по обновлению UTM-5.2.1-003 до последнего релиза

Технические вопросы по UTM 5.0
Аватара пользователя
nops
Сообщения: 48
Зарегистрирован: Пн фев 09, 2009 13:05

Вопрос по обновлению UTM-5.2.1-003 до последнего релиза

Сообщение nops »

Доброго всем времени суток.
Собственно сразу суть проблемы.
Есть собственно установленная и рабочая система, но версия старая, 5.2.1-003 В ней некоторые вещи работают некоректно. К тому же руководство купили обновление и поставили задачу обновить биллинг.
Я знаю, что при переходе на версию 006 была заменена система лицензирования. Ключик мы возьмём в личном кабинете. Это не будет проблемой. Проблема заключается в следующем. Учитывая, что произошло очень много изменений с момента выхода 003-го релиза, нужно каким-то образом коректно обновить биллинг так, чтобы были внесены все изменения, начиная с 004-го релиза.
Слышай что для этого достаточно обновить сразу до 008-й версии, но мне это кажется несколько странным. неужели в дампе обновления есть все изменения из предыдущих релизов.

Подскажите друзья. нужно ли пошагово обновлять поочереди с 003 до 004, потом до 005, потом до 006, потом до 007 и потом до 008? или действительно достаточно взять один дамп обновления?
У нас более 1000 абанентов, и не дай бог хоть что-то потерть.....

Заранее благораден.

tesla
Сообщения: 37
Зарегистрирован: Ср дек 10, 2008 09:45

Сообщение tesla »

Как раз сегодня обновился с 5.2.1-007.
По времени это очень долго.
Ставил в пятницу с утра обновлять структуры базы, не дождался и ушел домой.
Все обновилось и работает. База на 16 гб.
Читал здесь:
http://www.netup.ru/UTM5/articles.php?n=48

ps.

Работает пока на тестовом серваке разумеется :D
Когда 100% увидим, что все пашет, накатим на головной сервак.

Аватара пользователя
nops
Сообщения: 48
Зарегистрирован: Пн фев 09, 2009 13:05

Сообщение nops »

tesla писал(а):Как раз сегодня обновился с 5.2.1-007.
По времени это очень долго.
Ставил в пятницу с утра обновлять структуры базы, не дождался и ушел домой.
Все обновилось и работает. База на 16 гб.
Читал здесь:
http://www.netup.ru/UTM5/articles.php?n=48

ps.

Работает пока на тестовом серваке разумеется :D
Когда 100% увидим, что все пашет, накатим на головной сервак.
Спасибо за инфу, но меня интересует конкретно обновление с 003 до последнего. с 007 обновиться не проблема, а как на счёт более старых версий......

dk
Сообщения: 424
Зарегистрирован: Чт авг 10, 2006 08:52

Сообщение dk »

nops писал(а):Спасибо за инфу, но меня интересует конкретно обновление с 003 до последнего. с 007 обновиться не проблема, а как на счёт более старых версий......
Я уже писал, что обновлялись с 5.2.0-002 до 007 без проблем. Для ускорения переноса можно сделать так:
- Сделать бэкап базы, исключая discount_transaction_*
- перенести БД на временный хост (scp), убедиться что всё поднялось
- обновить всё что надо (mysql например)
- latin-1=>utf8, создать из дампа новую базу
- перенести текущий месяц discount_transaction_* из старой базы в новую (самый длительный шаг; в принципе, можно не делать и просто залить позже в архивную таблицу), не забыть добавить в ЛК сообщение, что данные по трафику временно недоступны.
- пробежаться глазами по всем инструкциям к обновлениям, местами надо сделать доп. действия
- запустить новую версию (всё уже работает)
- настроить архивацию; если нужно сохранить информацию по трафику за старые месяцы, то, не спеша, помесячно переносить их в новую БД в архивные таблицы.

tesla
Сообщения: 37
Зарегистрирован: Ср дек 10, 2008 09:45

Сообщение tesla »

Небольшое добавление не в обиду предыдущему автору.

Код: Выделить всё

#!/bin/sh
for TABLE in $(echo "show tables" | mysql -u root UTM5 |grep -v Tables_in_)
do
mysqldump -v --add-drop-table -u root UTM5 ${TABLE} > /mnt/mysqldumpfile_$TABLE.sql
done
Делаю дамп всех таблиц.

Затем запросом

Код: Выделить всё

mysql -u root -e 'use UTM5;select * from discount_transactions_all where discount_date>1288569599;' >discount_transactions_all.sql
Получаю выжимку с начала 01/11/2010

Выжимка из discount_transactions_iptraffic_all делается по аналогии

ps

Это с вырезом таблиц discount_transactions_iptraffic_all и discount_transactions_all

Код: Выделить всё

#!/bin/sh
for TABLE in $(echo "show tables" | mysql -u root UTM5 |grep -v Tables_in_ |grep -y 'discount_transactions_*')
do
mysqldump -v --add-drop-table -u root UTM5 ${TABLE} > /mnt/mysqldumpfile_$TABLE.sql
done

Аватара пользователя
nops
Сообщения: 48
Зарегистрирован: Пн фев 09, 2009 13:05

Сообщение nops »

Спасибо всем за советы)
Как я понял, беру дамп(без данных по трафику), заливаю на новую машину, обновляю до 007, а потом до 008. запускаю, проверяю что всё работает, устанавливаю вместо старой.
Заливаю оставшиеся 2 таблици с данными по трафику и всё работает из коробки?!
Я правильно понял?!)
Или всё таки лучше сначала до 005, потом до 006, потом до 007 ну и в оконцовке до 008?
дайте дельный совет. Как лучше сделать?

dk
Сообщения: 424
Зарегистрирован: Чт авг 10, 2006 08:52

Сообщение dk »

tesla писал(а):Небольшое добавление не в обиду предыдущему автору.
Отличие в возможности перенести информацию из discount_transactions_* уже после запуска биллинга, что снижает время простоя в разы.

Думаю, что можно обновиться и сразу до 008. Если машина новая -- всё ещё проще и быстрее, займёт считанные минуты, так что можно тестировать сколько угодно.
на старом
mysqldump -e -q --ignore-table discount_transactions_iptraffic_all --ignore-table discount_transactions_all UTM5 > UTM.sql
sed 's/latin1/utf8/g' UTM.sql
на новом
mysqladmin create UTM5
mysql UTM5 < UTM.sql
mysql -f UTM5 < /netup/utm5/UTM5_MYSQL_update.sql
остаётся только залить новый ключик, сконвертить файрволлы, запускать и тестировать. переносить discount_transactions_* можно уже потом.

tesla
Сообщения: 37
Зарегистрирован: Ср дек 10, 2008 09:45

Сообщение tesla »

Кстати написал и не подумал. Так не годиться

Код: Выделить всё

mysql -u root -e 'use UTM5;select * from discount_transactions_all where discount_date>1288569599;' >discount_transactions_all.sql 
Памяти просто не хватит для запроса.

Посему вопрос. Как задампить данные в файл
where discount_date>1288569599

Из discount_transactions_*

tesla
Сообщения: 37
Зарегистрирован: Ср дек 10, 2008 09:45

Сообщение tesla »

dk писал(а): переносить discount_transactions_* можно уже потом.
Допустим все сделано как описано выше.

Как вливать discount_transactions_* (которые не сконвертированы под новую структуру mysql)

Сделать вливание на тестовый сервер и там сделать конвертацию таблиц
discount_transactions_* под 008 с выгрузкой в дамп и вливанием на работающий сервер?

Как быть с автоинкрементами? Создавать автоинкремент в работающем билинге на таблицу discount_transactions_all на 1 больше чем было?

anclbob
Сообщения: 55
Зарегистрирован: Сб окт 31, 2009 19:39

Сообщение anclbob »

есть некоторая проблема. У нас работало динамическое шейпирование по логину , после обновления умельцы из нетапа решили не учитывать регистр логина и соответственно шейпинг перестал работать на тех людях, которые логин с большой буквы писали. При звонке в нетап "Че за фигня? Люди с неверными паролями подключаются!!!!" Мы были посланы на х... и еще сказали что переделака будет стоить 300 тыс. р... Вот такие они милашки

tesla
Сообщения: 37
Зарегистрирован: Ср дек 10, 2008 09:45

Сообщение tesla »

В общем получилось следующее после изысканий.

UTM остановлена и доведена до 008.
Скриптом по архивированию таблиц списаний пробегаемся по Mysql.

Далее делаются апдейты структуры mysql, обновления индексов, правил фаервола, лицензии дампами из поставки 008 версии.

Происходит вся процедура практически за мгновения.
Далее запускается UTM и проверяется работа.

При этом у архивных таблиц:

discount_transactions_all_месяц_год
discount_transactions_iptraffic_all_месяц_год

Остаются не обновлены индексы , но отчеты генерируются нормально.
Можно сделать обновления индексов ночью не останавливая систему.

JAO
Сообщения: 1153
Зарегистрирован: Вт дек 11, 2007 08:17

Сообщение JAO »

Со всеми архивными таблицами можно работать, не останавливая ядро биллинга. Я так и делаю.

steckovski
Сообщения: 31
Зарегистрирован: Сб июл 26, 2008 11:58

Сообщение steckovski »

tesla писал(а):Небольшое добавление не в обиду предыдущему автору.

Код: Выделить всё

#!/bin/sh
for TABLE in $&#40;echo "show tables" | mysql -u root UTM5 |grep -v Tables_in_&#41;
do
mysqldump -v --add-drop-table -u root UTM5 $&#123;TABLE&#125; > /mnt/mysqldumpfile_$TABLE.sql
done
Делаю дамп всех таблиц.

Затем запросом

Код: Выделить всё

mysql -u root -e 'use UTM5;select * from discount_transactions_all where discount_date>1288569599;' >discount_transactions_all.sql
Получаю выжимку с начала 01/11/2010

Выжимка из discount_transactions_iptraffic_all делается по аналогии

ps

Это с вырезом таблиц discount_transactions_iptraffic_all и discount_transactions_all

Код: Выделить всё

#!/bin/sh
for TABLE in $&#40;echo "show tables" | mysql -u root UTM5 |grep -v Tables_in_ |grep -y 'discount_transactions_*'&#41;
do
mysqldump -v --add-drop-table -u root UTM5 $&#123;TABLE&#125; > /mnt/mysqldumpfile_$TABLE.sql
done
отработал втой скрипт

Код: Выделить всё

#!/bin/sh
for TABLE in $&#40;echo "show tables" | mysql -u root UTM5 |grep -v Tables_in_ |grep -y 'discount_transactions_*'&#41;
do
mysqldump -v --add-drop-table -u root UTM5 $&#123;TABLE&#125; > /mnt/mysqldumpfile_$TABLE.sql
done
Вопрос: Как ты расчитал дату 1288569599 - 01/11/2010

steckovski
Сообщения: 31
Зарегистрирован: Сб июл 26, 2008 11:58

Сообщение steckovski »

Код: Выделить всё

#!/bin/sh
for TABLE in $&#40;echo "show tables" | mysql -u root UTM5 |grep -v Tables_in_ |grep -y 'discount_transactions_*'&#41;
do
mysqldump -v --add-drop-table -u root UTM5 $&#123;TABLE&#125; > /mnt/mysqldumpfile_$TABLE.sql
done 
Как доработать скрипт чтобы в нем была дата и как ее расчитывать

например хочу вытащить только с 01.11.2010 или с 01.12.2010

tesla
Сообщения: 37
Зарегистрирован: Ср дек 10, 2008 09:45

Сообщение tesla »

steckovski писал(а):

Код: Выделить всё

#!/bin/sh
for TABLE in $&#40;echo "show tables" | mysql -u root UTM5 |grep -v Tables_in_ |grep -y 'discount_transactions_*'&#41;
do
mysqldump -v --add-drop-table -u root UTM5 $&#123;TABLE&#125; > /mnt/mysqldumpfile_$TABLE.sql
done 
Как доработать скрипт чтобы в нем была дата и как ее расчитывать

например хочу вытащить только с 01.11.2010 или с 01.12.2010
Дата расчитывается просто.
http://www.bl2.ru/prograng/timestamp.html
Получаешь свои unixtime 2 раза, а в скрипте указываешь диапазон.

Или так

SELECT * FROM news
WHERE created_at BETWEEN STR_TO_DATE('2008-08-14 00:00:00', '%Y-%m-%d %H:%i:%s')
AND STR_TO_DATE('2008-08-23 23:59:59', '%Y-%m-%d %H:%i:%s');

Ответить