|
Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.
|
Изменения (43)
просмотр истории страницыh2. Общие сведения: |
{tip}*Время выполнения инструкции*: 2-3 часа на каждые 500 абонентов, зависит от объёма базы и производтельности серверов{tip} |
|
{info}Окончательная миграция из *Carbon Billing 4* в *Carbon Billing 5* для запуска пятой версии в коммерческую эксплуатацию должна проходить под наблюдением специалиста *CarbonSoft*.{info} {warning}{*}Время миграции просьба заранее согласовать в техподдержке по телефону или в соответствующей заявке.*{warning} {toc:maxLevel=2} h2. Общие сведения |
При миграции с 4го биллинга сначала мы экспортируем все данные 4го биллинга, а потом загружаем их в порядке очереди. |
Билд 4-ой версии должен быть не старее: {code} cat /etc/version 452300 {code} {info} В случае, если Вам необходимо, чтобы биллинг до запуска в коммерческую эксплуатацию не отправлял сообщения по мигрированным абонентам, необходимо отключить их отправку. Для этого необходимо перейти на вкладку *Управление абонентами и тарифами - настройки - настройки(в файле) - Настройки демона отправки сообщений* и отключить опцию *"Включить отправку сообщений:"* {info} |
*Важно\! Скрипты импорта и экспорта стараются быть максимально информативными. Читайте их вывод и обо всех проблемах сообщайте в тех. поддержку.* |
... |
Просто для ознакомления. Ничего в этом пункте делать не нужно {code} |
migrate_paycard migrate_card_series |
migrate_cards |
migrate_ippool migrate_switch |
... |
h2. Выполнение миграции (пошаговое) |
*Шаг 1. Подготовка к миграции* |
*Шаг 1. Подготовка к миграции (сервер 4й версии)* |
Открываем порт для доступа к БД в 4й версии Допустим IP биллинга 5й версии 2.2.2.2. |
... |
В нашем случае пароль это servicem |
*Шаг 2. Удаляем старый карты оплаты из демо БД (5 версия)* |
*Шаг 2. Удаляем старые карты оплаты из БД (сервер 5й версии)* |
{panel} sqlexec "delete from cards" |
... |
{panel} |
*Шаг 2.1 Удаляем старые карты оплаты из БД (сервер 4й версии)* {panel} sqlexec "delete from cards where SERIES_NO in (select SERIES_NO from card_series where VALID_DATE <='now')" sqlexec "delete from card_series where VALID_DATE <='now'" {panel} {color:#ff0000}Далее делаем все только на сервере 5й версии.{color} |
*Шаг 3. Подготавливаем рабочий каталог для миграции* {panel} chroot /app/asr_billing/ |
/etc/init.d/memcached stop |
mkdir \-p /root/new_migration/csv_output |
cd /root/new_migration/ |
mkdir new_migration cd new_migration/ mkdir csv_output |
{panel} *Шаг 4. Получаем данные из биллинга 4й версии* Для примера: |
IP биллинга: 1.1.1.1 |
IP биллинга 4-ой версии: 1.1.1.1 |
Пароль БД: servicem {panel} |
python /usr/lib/python2.6/site-packages/carbon_migration_scripts/crb4_csv_export/main.pyc 1.1.1.1 servicem |
python2.7 /usr/lib/python2.7/site-packages/carbon_migration_scripts/crb4_csv_export/main.pyc 1.1.1.1 servicem |
{panel} Внимательно посмотрите вывод. |
... |
ll csv_output {panel} |
Вывод будет такой |
{code} итого 772 |
... |
-rw-r--r-- 1 root root 0 Авг 20 17:35 usluga.csv.error {code} |
Файлы \*csv.error должны быть с нулевым размером, либо отсутствовать |
*Шаг 5. Заносим в БД 5й версии данные сериях карт оплаты* {panel} |
python /usr/lib/python2.6/site-packages/carbon_migration_scripts/file_client/import_csv.py csv_output/card_series.csv.cfg csv_output/card_series.csv migrate_card_series |
python2.7 /usr/lib/python2.7/site-packages/carbon_migration_scripts/file_client/import_csv.pyc csv_output/card_series.csv.cfg csv_output/card_series.csv migrate_card_series |
{panel} Внимательно посмотрите вывод. |
... |
*Шаг 6. Заносим в БД 5й версии данные о картах оплаты* {panel} |
python /usr/lib/python2.6/site-packages/carbon_migration_scripts/file_client/import_csv.py csv_output/cards.csv.cfg csv_output/cards.csv migrate_cards |
python2.7 /usr/lib/python2.7/site-packages/carbon_migration_scripts/file_client/import_csv.pyc csv_output/cards.csv.cfg csv_output/cards.csv migrate_cards |
{panel} Внимательно посмотрите вывод. |
... |
*Шаг 7. Заносим в БД 5й версии данные о пулах IP* {panel} |
python /usr/lib/python2.6/site-packages/carbon_migration_scripts/file_client/import_csv.py csv_output/ip_pull.csv.cfg csv_output/ip_pull.csv migrate_ippool |
python2.7 /usr/lib/python2.7/site-packages/carbon_migration_scripts/file_client/import_csv.pyc csv_output/ip_pull.csv.cfg csv_output/ip_pull.csv migrate_ippool |
{panel} Внимательно посмотрите вывод. |
... |
*Шаг 8. Заносим в БД 5й версии данные о коммутаторах* {panel} |
python /usr/lib/python2.6/site-packages/carbon_migration_scripts/file_client/import_csv.py csv_output/switch.csv.cfg csv_output/switch.csv migrate_switch |
python2.7 /usr/lib/python2.7/site-packages/carbon_migration_scripts/file_client/import_csv.pyc csv_output/switch.csv.cfg csv_output/switch.csv migrate_switch |
{panel} Внимательно посмотрите вывод. |
... |
*Шаг 9. Заносим в БД 5й версии данные о NAS-ах* {panel} |
python /usr/lib/python2.6/site-packages/carbon_migration_scripts/file_client/import_csv.py csv_output/nas.csv.cfg csv_output/nas.csv migrate_nas |
python2.7 /usr/lib/python2.7/site-packages/carbon_migration_scripts/file_client/import_csv.pyc csv_output/nas.csv.cfg csv_output/nas.csv migrate_nas |
{panel} Внимательно посмотрите вывод. |
... |
*Шаг 10. Заносим в БД 5й версии данные об услугах* {panel} |
python /usr/lib/python2.6/site-packages/carbon_migration_scripts/file_client/import_csv.py csv_output/usluga.csv.cfg csv_output/usluga.csv migrate_usluga |
python2.7 /usr/lib/python2.7/site-packages/carbon_migration_scripts/file_client/import_csv.pyc csv_output/usluga.csv.cfg csv_output/usluga.csv migrate_usluga |
{panel} Внимательно посмотрите вывод. |
... |
*Шаг 11. Заносим в БД 5й версии данные о тарифах* {panel} |
python /usr/lib/python2.6/site-packages/carbon_migration_scripts/file_client/import_csv.py csv_output/tariff.csv.cfg csv_output/tariff.csv migrate_tariff |
python2.7 /usr/lib/python2.7/site-packages/carbon_migration_scripts/file_client/import_csv.pyc csv_output/tariff.csv.cfg csv_output/tariff.csv migrate_tariff |
{panel} Внимательно посмотрите вывод. |
... |
*Шаг 12. Заносим в БД 5й версии данные о тарифных услугах* {panel} |
python /usr/lib/python2.6/site-packages/carbon_migration_scripts/file_client/import_csv.py csv_output/tariff_usluga.csv.cfg csv_output/tariff_usluga.csv migrate_tariff_usluga |
python2.7 /usr/lib/python2.7/site-packages/carbon_migration_scripts/file_client/import_csv.pyc csv_output/tariff_usluga.csv.cfg csv_output/tariff_usluga.csv migrate_tariff_usluga |
{panel} Внимательно посмотрите вывод. |
... |
*Шаг 13. Заносим в БД 5й версии данные об абонентах * {panel} |
python /usr/lib/python2.6/site-packages/carbon_migration_scripts/file_client/import_csv.py csv_output/abonent.csv.cfg csv_output/abonent.csv migrate_abonents |
python2.7 /usr/lib/python2.7/site-packages/carbon_migration_scripts/file_client/import_csv.pyc csv_output/abonent.csv.cfg csv_output/abonent.csv migrate_abonents |
{panel} Внимательно посмотрите вывод. Подробно проверяем, что данные в биллинге соответствуют данным из 4й версии (хотя бы пару записей). |
*Шаг 14. Заносим в БД 5й версии данные о не тарифных услугах, подключенных абонентам* {panel} python2.7 /usr/lib/python2.7/site-packages/carbon_migration_scripts/file_client/import_csv.pyc csv_output/users_usluga.csv.cfg csv_output/users_usluga.csv migrate_users_usluga {panel} |
|
|
h2. Что не поддерживается в текущей версии миграции: |
{info} |
* финансовые группы * карточные абоненты |
... |
* Слишком длинные ФИО обрезаются. * Для тарифов с неуказанной абон.платой ставится 0. |
* Логины с пробелом * При экспорте тарифов с одинаковым названием произойдет коллизия. Тоже самое с услугами. {info} h2. Решение проблемы со спиcаниями h3. Как списания и блокировки работают в Carbon Billing 4 при определённых настройках В Carbon Billing 4 при некоторых настройках ежемесячное списание выглядит следующим образом (рассмотрим на конкретном примере тарифа и одного абонента): * Тариф стоит 600 рублей * У абонента на текущий момент на счету 400 рублей * К первому числу следующего месяца Carbon Billing 4 спишет с абонента 600 рублей и у абонента на счету будет -200 * Абонент при этом будет активен и для того, чтобы в следующем месяце абонент продолжил работу ему будет достаточно положить 201 рублей, чтобы на счету абонента был минимум 1 рубль. h3. Как списания и блокировки работают в Carbon Billing 5 В Carbon Billing 5 работа биллинга при ежемесячных списаниях будет выглядеть немного по - другому (рассмотрим на конкретном примере тарифа и одного абонента): * Тариф стоит 600 рублей * У абонента на текущий момент на счету 400 рублей * К первому числу следующего месяца абонент будет заблокирован, т.к. для списания требуется 600 рублей а 400 < 600 * Для разблокировки абоненту требуется положить на счет минимум 200 рублей, чтобы на счету было не меньше 600 рублей * Если у абонента на счету хватает средств - биллинг списывает 600 рублей и активирует абонента. h3. Как проверить, что у Вас именно это ситуация В случае, если на Carbon Billing 4 у Вас настроен тип списания так, как описано выше, то Вам необходимо проверить на Carbon Billing 5 после миграции несколько абонентов, удовлетворяющих следующим требованиям: 1) У абонента тариф, который описан выше 2) У абонента отрицательный баланс {info} Т.к. на Carbon Billing 4 списания уже прошли, то у абонента будет баланс отрицательным и абоненту нужно заплатить всего 201 рубль, чтобы активироваться(по логике Carbon Billing 4), но на Carbon Billing 5 данному абоненту нужно будет заплатить не 201 рубль, а 800 (200+600), чтобы баланс был 600 рублей. {info} h3. Как разрешить ситуацию Данную проблему с разницей в минимальных платежах для разблокировки можно решить запуском следующей команды: {code} chroot /app/asr_billing/ python2.7 /usr/lib/python2.7/site-packages/python_tools/client_fix_scripts/add_summ_abon.py {code} Данный скрипт добавит всем абонентам с блокировкой по отрицательному балансу и балансом меньше 0 приход на сумму, равной одной абонентской плате по тарифу. Абонентская плата = сумма стоимости всех услуг, входящих в тариф. Таким образом после выполнения данного скрипта у абонента из примера будет баланс 400 рублей и для разблокировки ему потребуется та же сумма, что и в Carbon Billing 5,а именно 200 рублей. В случае, если нужно убрать из выборки абонентов на конкретном тарифе, Вы можете запустить данный скрипт и передать ему в виде аргументов *tarif_id*. Например, если необходимо добавить приход всем абонентам, кроме абонентов на тарифе с id 1137 и 1136: {code} chroot /app/asr_billing/ python2.7 /usr/lib/python2.7/site-packages/python_tools/client_fix_scripts/add_summ_abon.py 1137 1136 {code} |