Перенос данных из BILLmanager 4

Материал из ISPWiki
Перейти к: навигация, поиск

Подготовка

Перед решением о переходе на 5ю версию BILLmanager рекомендуется ознакомится со статьей "Сравнение BILLmanager 4 и 5 версии"

Процесс переноса данных из 4й версии BILLmanager в 5ю производится в три шага:

  • конвертация базы данных в новый формат
  • перенос необходимых файлов BILLmanager 4 на новый сервер
  • запуск специальных функций BILLmanager 5 для выполнения дополнительных преобразований данных и конвертации конфигурационных файлов пользователей.

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

  • В BILLmanager 4 включить все возможности, так как правила конвертации могут ссылаться на таблицы, которые присутствуют в базе только при включении некоторых возможностей.
  • Установить BILLmanager нужной версии. На текущий момент импорт данных поддерживается только в чистую установку BILLmanager. Поэтому не рекомендуется создание пользователей, клиентов либо других объектов.
  • Остановить cron, либо через планировщик выключить все задания, относящиеся к BILLmanager. Задания выглядят либо как:
/usr/local/mgr5/sbin/billmaintain ...

либо как

/usr/local/mgr5/sbin/mgrctl -m billmgr ...

а так же

/usr/local/mgr5/notify/ntinternal ...
/usr/local/mgr5/notify/ntemail ...
/usr/local/mgr5/notify/ntsms ...
  • Создать файл /usr/local/mgr5/etc/billmgr.DoNothing . Наличие этого файла предотвращает выполнение модулями биллинга каких-либо действий с внешними системами
touch /usr/local/mgr5/etc/billmgr.DoNothing

Таким образом вы получите полностью функциональный BILLmanager, который не производит действий с услугами в панелях управления, не отправляет почту, а также не списывает средства со счетов клиентов по расписанию.

После создания тестового стенда BILLmanager можно приступить к загрузке данных в базу MySQL (MariaDB) сервера.

Перенос базы данных

Перенос базы данных можно осуществлять напрямую с сервера, на котором установлен BILLmanager 4, либо из локально поднятого дампа базы данных. В первом случае есть несколько минусов:

  • Необходимо включать удаленный доступ для пользователя MySQL (по умолчанию root)
  • Может быть замедлена работа BILLmanager 4
  • Передача данных по сети замедлит процесс конвертации данных
  • Возможны разрывы соединения в процессе конвертации и процесс придется начинать с начала
  • В базе данных могут появится новые сущности, которые будут ссылаться на несуществующие в полученных ранее данных объекты

Во втором случае во время снятия дампа работа BILLmanager 4 будет заблокирована, в остальном процесс переноса можно будет повторять несколько раз с меньшими потерями времени

После подготовки базы данных, из которой будет осуществляться перенос можно запускать саму конвертацию данных. Для этого из консоли нужно выполнить следующую команду

/usr/local/mgr5/sbin/billimport --command check --billing billmgr4 --db <db name> [--host <db host> [--user <db user> [--password <db password>]]]

Этот вызов проверит возможность подключения к базе данных, а так же корректность текущих правил конвертации данных.

После завершения проверки можно запустить непосредственно импорт данных

/usr/local/mgr5/sbin/billimport --command import --billing billmgr4 --db <db name> [--host <db host> [--user <db user> [--password <db password>]]]

В обоих командах

  • --command - действие, которое необходимо выполнить утилите billimport
  • --billing - условное имя биллинговой системы, из которой производится импорт (для переноса данных из BILLmanager 4 версии соответствующей версии BILLmanager 5 значение равно billmgr4, для переноса из BILLmanager 4 Advanced в BILLmanager 5 Corporate billmgr4adv)
  • --db - имя базы данных, из которой производится выборка данных для конвертации
  • --host - сервер, к которому необходимо подключиться для получения данных, не обязательный параметр, по умолчанию localhost
  • --user - имя пользователя, под которым производится подключение, не обязательный параметр, по умолчанию root
  • --password - пароль пользователя, с которым будет производиться подключение, не обязательный параметр, по умолчанию подключение производиться без пароля

Так же дополнительно можно указать параметры:

  • limit - лимит количества записей для выборки из импортируемой базы данных. Импорт данных производится частями, чтобы избежать превышения лимита MySQL (MariDB) на пакеты данных. Данный параметр позволяет регулировать какими порциями будут выбираться данные. По умолчанию выборка идет по 10000 записей
  • lhost - сервер, к которому будет подключаться скрипт конвертации данных, в случае если данные нужно загрузить не базу данных, используемую BILLmanager 5 в данный момент.
  • luser - имя пользователя, под которым будет производиться подключение к базе данных BILLmanager 5, указывается в случае, если значение отличается от прописанного в конфигурации BILLmanager 5
  • lpassword - пароль, который следует использовать для подключения к базе данных BILLmanager 5
  • ldb - имя базы данных, в которую будут импортироваться данные, если оно отличается от текущей базы данных

Во время переноса billimport делает выборку данных из исходной базы, преобразует в нужный формат и сохраняет в базу данных BILLmanager 5. Структура базы назначения должна быть сформирована, данные должны отсутствовать. Т.е. база данных должна выглядеть так, как выглядит сразу после установки BILLmanager 5 на чистый сервер.

Также во время конвертации данных billimport запускает некоторые функции BILLmanager 5, которые выполняются на текущих используемых данных. Поэтому, в случае, если импорт производится не в текущую базу данных необходим ручной вызов этих функций:

  • fix.docnumber - преобразует настройки номеров документов для компаний из формата BILLmanager 4 в формат BILLmanager 5
  • fix.currency.status - производит подключение к провайдеру активной валюты
  • fix.orderperiod - включает/выключает используемые периода заказа в настройках типов продуктов
  • fix.addon.compound - производит конвертацию дополнений, использовавших подтипы, а так же дополнени с типом "Перечисление с количеством" в дополнения с типом учета "По выбору клиента"
  • fix.processingmodule.param - зашифровывает привадные данные подключения к модулям обработки
  • fix.addon.manual - конвертирует вручную добавленные к услугам дополнения в новый формат
  • fix.certificate.cn - переносить доменное имя сертификатов в параметры услуги
  • fix.itemip - переназначает IP адреса к услугам используя новую архитектуру IP адресов
  • fix.billorder.item - конвертирует не обработанные заказы клиентов в новый формат корзины
  • fix.invoice.realamount - конвертирует внутреннюю структуру актов выполненных работ в новый формат
  • fix.subscription - преобразует данные о подписке клиентов на уведомления в новый формат
  • fix.domain.dopparam - конвертирует параметры доменов в новый формат
  • fix.account.country - прописывает клиентам страну по данным их плательщиков
  • fix.accountgroup_condition - конвертирует правила автоматического включения в группы в новый формат
  • fix.department.rights - конвертирует права доступа к фунциям в новый формат, а так же проставляет полный доступ
  • fix.fraudgateway - конвертирует параметры шлюзов защиты от мошенничества
  • fix.gateway - конвертирует параметры шлюзов отправки и получения сообщений
  • fix.globalindex.rebuild - запускает индексацию данных для быстрого поиска
  • fix.import.period - проверяет заданный у услуг период заказа и автоматического продления и меняет его в случае необходимости на подходящий
  • fix.measure - конвертирует единицы измерения используемые в BILLmanager 4, в использованные в BILLmanager 5. Удаляет дубли единиц измерения
  • fix.modules - запускает установку отсутствующих модулей обработчиков, шлюзов отправки/получения сообщений и методов оплаты
  • fix.pricelist.domain.intname - проставляет соотношение тарифов регистрации доменных имет и доменов верхнего уровня
  • fix.profile.localization - корректирует хранение данных плательщиков и компаний, а так же проставляет параметр локализации документов
  • fix.support.incident - конвертирует данные о поддержке по инцидентам в новый формат
  • fix.taskdepartment - выставляет ответственный отдел для импортированных задач
  • fix.tax.expense - пересчитывает суммы неоплаченных расходов при использовании налогооблажения сверх указанной в тарифах стоимости, а так же пересчитвает открытые заказы
  • fix.update_expiredate - запускает синхронизацию сроков получения обновлений для лицензий
  • fix.itemparamip - переносит IP адреса виртуальных и выделенных серверов в раздел "IP-адреса"
  • processing.getconfig - запускает получение конфигурации с настроенных обработчиков

По окончанию переноса данных и завершения выполнения данных функций можно приступать к дополнительным действиям по переносу данных.

Особенности переноса данных

  • Политика налогообложения провайдера выставляется по следующей схеме:
    • Если хотя бы для одной из компаний использовалась не включенная в стоимость налоговая ставка, для провайдера выставляется флаг расчета налога сверх стоимости
    • Если для услуг провайдера налог рассчитывается сверх стоимости, для налоговых ставок сбрасывается привязка к компании
  • Дополнения использующие подтипы, а так же дополнения с типов "Перечисление с количеством" конвертируются в дополнения с типом учета "По выбору клиента"
  • Данные добавленные в историю по услугам и IP адресам будут помечены как "Синхронизация истории"
  • При отсутствии в BILLmanager 5 периода настроенного в BILLmanager 4, подбирается ближайший по длине период

Неконвертируемые данные

Из-за отсутствия возможности либо из-за сильного различия в формате хранения данных:

  • Для версии Corporate не переносятся данные о партнерах, их клиентах и прочее, что с ними связано
  • Не переносятся данные о рекламе, добавляемой в Email сообщения
  • Не переносятся тексты соглашений для тарифных планов
  • Не переносятся настройки автоматического выставления счетов
  • Не переносятся данные об опросах
  • Не переносятся данные об электронном документообороте, информацию о контрагентах необходимо запрашивать вручную
  • Не переносится база знаний
  • Не переносятся не отправленные уведомления
  • Не переносятся текущие операции по услугам
  • Не переносится статистика центра поддержки
  • Не переносятся графики работы сотрудников

Замечания

При переносе данных коды клиентов, их лицевых счетов, а так же коды услуг переносятся без изменений. Производится полный перенос финансовой информации, услуг и настроек тарифных планов. Не производится перенос шаблонов уведомлений и документов, а так же настройки бренда, изображения, использованные в шаблонах и другие дополнительные файлы, не входящие в структуру BILLmanager 4

В ходе конвертации данных запросы из центра поддержки разделяются на уведомлений (информационные сообщения), непосредственно запросы и задачи с произвольным описанием

В случае конвертации данных из BILLmanager 4 в BILLmanager 5 разных редакций, возможна потеря данных из-за отсутствия в базе данных BILLmanager 5 необходимых полей и таблиц для хранения данных из BILlmanager 4

После завершения импорта базы данных, процесс конвертации прав доступа пользователей может быть еще не завершен, так как запускается в фоновом процессе. Чтобы удостовериться, что конвертация прав закончена, выполните команду

ps aux | grep billfix

Перенос необходимых файлов

Кроме информации, хранящейся в базе данных, при переходе с BILLmanager 4 на BILLmanager 5 необходимо перенести файлы вложений из запросов клиентов, а также конфигурационные файлы пользователей, которые будет преобразованы в новый формат хранения.

Для переноса файлов вложений к запросам клиентов, необходимо с помощью scp либо rsync скопировать каталог /usr/local/ispmgr/var/mailattach с сервера с BILLmanager 4 на сервер с BILLmanager 5 и переименовать его в /usr/local/mgr5/var/ticket_attach. По окончанию копирования файлов нужно запустить функцию

/usr/local/mgr5/sbin/mgrctl -m billmgr fix.ticket_message_fileattach

Данная функция преобразует формат привязки вложений из формата BILLmanager 4 в формат BILLmanager 5.

Для переноса и конвертации конфигурационных файлов пользователей необходимо так же scp либо rsync скопировать каталог /usr/local/ispmgr/var/userconf с сервера BILLmanager 4 на сервер BILLmanager 5 и переименовать его в /usr/local/mgr5/tmp_userconf. После этого нужно запустить функцию

/usr/local/mgr5/sbin/mgrctl -m billmgr fix.userconf

Данная функция пройдется по файлам в каталоге /usr/local/mgr5/tmp_userconf извлечет из них необходимую информацию и сохранить новые конфигурационные файлы в каталог /usr/local/mgr5/var/userconf

Для переноса аватаров пользователей необходимо каталог /usr/local/ispmgr/skins/userdata/avatars с сервера BILLmanager 4 скопировать в каталог /usr/local/mgr5/skins/userdata/avatar_files на сервер BILLmanager 5

Дополнительные действия

В случае, если в BILLmanager 4 были использованы специфичные шаблоны сообщений и документов, а так же использовались плагины и расширения, перед полной миграцией рекомендуется

  • Выполнить тестовую конвертацию базы данных
  • На полученных данных протестировать и скорректировать шаблоны документов и сообщений. Полученные шаблоны необходимо сохранить во внешнем хранилище, так как после итоговой конвертации они будут потеряны из Базы данных BILLmanager
  • Произвести переработку и тестирование плагинов и расширений (API BILLmanager 4 и BILLmanager 5 не совпадает, поэтому плагины от BILLmanager 4 не будут работать в BILLmanager 5, плагины необходимо переписать, основываясь на функциях BILLmanager 5)

Также при конвертации базы данных не переносятся настройки шлюзов отправки и получения сообщений и шлюзов защиты от мошенничества. Их настройку необходимо произвести вручную по окончании процесса конвертации

Конвертация истории по услугам и IP адресам

Доступно с версии 5.74.0


В процессе переноса также возможна конвертация истории по услугам, хранящаяся в базе данных BILLmanager 4, но из-за больших различий в формате выполняющаяся отдельной функцией BILLmanager 5. Вызов функции выглядит следующим образом

/usr/local/mgr5/sbin/mgrctl -m billmgr fix.history host=$host user=$user password=$password db=$db

Где

  • $host - IP сервера, на котором расположена база данных BILLmanager 4
  • $user - пользователь для подключения к базе данных
  • $password - пароль пользователя базы данных
  • $db - наименование базы данных

Процесс конвертации занимает длительное время, поэтому рекомендуется запланировать этот процесс на период наименьшей нагрузки. Запустить конвертацию истории можно в любое время после переноса данных, если не производилось удаление модулей обработки услуг.