Подготовка


Перед переходом на BILLmanager 5, ознакомьтесь с полным списком изменений

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

Перенос данных из четвертой версии в пятую происходит в два этапа:

  1. Конвертация базы данных в новый формат
  2. Конвертация и перенос необходимых файлов BILLmanager 4 на новый сервер

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

  • В BILLmanager 4 включить все возможности. Правила конвертации могут ссылаться на таблицы, созданные при включении некоторых возможностей. 
  • Установить BILLmanager нужной версии. Импорт данных поддерживается только в "чистый" BILLmanager. После установки не создавайте никакие сущности - клиентов, пользователей и тому подобное.
  • Остановить cron. Альтернативный вариант - выключить все задания, относящиеся к BILLmanager. Они могут принимать следующий вид:

Задания BILLmanager в cron

/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 ...
CODE
  • Создать файл /usr/local/mgr5/etc/billmgr.DoNothing. Это предотвратит любые действия биллинга с внешними системами:

Создание файла DoNothing

touch /usr/local/mgr5/etc/billmgr.DoNothing
CODE

Выполнив эти рекомендации, вы получите полностью функционирующий 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>]]]
CODE

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

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

Запуск конвертации

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

Где в обеих командах:

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

Дополнительные параметры:

  • limit — размер выборки (кол-во записей) из импортируемой базы данных. Импорт данных производится частями, чтобы избежать превышения лимита MySQL на пакеты данных. Данный параметр позволяет регулировать какими порциями будут выбираться данные. По умолчанию размер выборки - 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.country.profile.param — создаёт параметры перенесённых плательщиков;
  • 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.itemtype.intname — преобразует внутренние имена типов продуктов, чтобы исключить одинаковые имена;
  • fix.measure — меняет единицы измерения используемые в BILLmanager 4, на применяемые в BILLmanager 5. Удаляет дубли единиц измерения;
  • fix.modules — запускает установку отсутствующих модулей обработчиков услуг, шлюзов отправки/получения сообщений и методов оплаты;
  • fix.pricelist.domain.intname — проставляет соотношение тарифов регистрации доменных имен и доменов верхнего уровня;
  • fix.profile.localization — корректирует хранение данных о плательщиках и компаниях, а также назначает параметр локализации документов;
  • fix.pmauto — добавляет системный обработчик pmauto, если требуется;
  • fix.support.incident — конвертирует в новый формат данные о поддержке по инцидентам;
  • fix.taskdepartment — выставляет ответственный отдел для импортированных задач;
  • fix.tax.expense — при использовании налогообложения сверх стоимости, указанной в тарифах, пересчитывает суммы неоплаченных расходов. Также пересчитывает открытые заказы;
  • fix.remove.internal.itemtype — удаляет системный тип продукта и тарифы;
  • fix.update_expiredate — запускает синхронизацию сроков получения обновлений для лицензий;
  • fix.itemparamip — переносит IP адреса виртуальных и выделенных серверов в раздел "IP-адреса";
  • processing.getconfig — запускает получение конфигурации с настроенных обработчиков.

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

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

Политика налогообложения провайдера:

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

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

Данные по услугам и IP-адресам, добавленные в историю, будут помечены как "Синхронизация истории".

Если в BILLmanager 4 настроен период, а в BILLmanager 5 он отсутствует, подберется период ближайший по длине. 

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

Для версии Corporate не переносятся данные о партнерах, их клиентах и прочее, что с ними связано.

Не переносятся данные о рекламе, добавляемой в Email сообщения.

Не переносятся тексты соглашений для тарифных планов.

Не переносятся настройки автоматического выставления счетов.

Не переносятся данные об опросах.

Не переносятся данные об электронном документообороте. Информацию о контрагентах необходимо запрашивать вручную.

Не переносится база знаний.

Не переносятся неотправленные уведомления.

Не переносятся текущие операции по услугам.

Не переносится статистика центра поддержки.

Не переносятся графики работы сотрудников.

Замечания

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

Производится полный перенос финансовой информации, услуг и настроек тарифных планов.

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

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

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

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

Состояние конвертации прав пользователей

ps aux | grep billfix
CODE

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


Помимо информации, хранящейся в базе данных, при переходе с 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
    CODE

    Функция преобразует формат привязки вложений в подходящий для 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
    CODE

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

Перенос аватаров пользователей:

  • С помощью scp или rsync, скопируйте каталог '/usr/local/ispmgr/skins/userdata/avatars' с сервера BILLmanager 4, в каталог '/usr/local/mgr5/skins/userdata/avatar_files' на сервере BILLmanager 5.

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

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

Команда вызова функции:

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

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

Параметры команды:

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

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

Обратите внимание!

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