Миграция абонентов из Carbon Billing 4

Skip to end of metadata
Go to start of metadata

Общие сведения:

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

Билд 4-ой версии должен быть не старее:

cat /etc/version
452300

Важно! Скрипты импорта и экспорта стараются быть максимально информативными. Читайте их вывод и обо всех проблемах сообщайте в тех. поддержку.

Порядок импортирования:

Просто для ознакомления. Ничего в этом пункте делать не нужно

migrate_card_series
migrate_cards
migrate_ippool
migrate_switch
migrate_nas
migrate_usluga
migrate_tariff
migrate_tariff_usluga
migrate_abonents
migrate_users_usluga

Выполнение миграции (пошаговое)

Шаг 1. Подготовка к миграции (сервер 4й версии)
Открываем порт для доступа к БД в 4й версии
Допустим IP биллинга 5й версии 2.2.2.2.
Выполняем в консоли биллинга 4й версии

iptables -I INPUT -s 2.2.2.2 -p tcp --dport 3050 -j ACCEPT
iptables -I OUTPUT -d 2.2.2.2 -p tcp --sport 3050 -j ACCEPT

Из консоли получаем пароль доступа к БД биллинга 4й версии:

grep ISC_PASSWORD /etc/ics/ics.conf
#вывод ISC_PASSWORD='servicem'

В нашем случае пароль это servicem

Шаг 2. Удаляем старые карты оплаты из БД (сервер 5й версии)

sqlexec "delete from cards"
sqlexec "delete from card_series"

Шаг 2.1 Удаляем старые карты оплаты из БД (сервер 4й версии)

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'"

Далее делаем все только на сервере 5й версии.

Шаг 3. Подготавливаем рабочий каталог для миграции

chroot /app/asr_billing/
mkdir -p /root/new_migration/csv_output
cd /root/new_migration/

Шаг 4. Получаем данные из биллинга 4й версии
Для примера:
IP биллинга 4-ой версии: 1.1.1.1
Пароль БД: servicem

python /usr/lib/python2.7/site-packages/carbon_migration_scripts/crb4_csv_export/main.pyc 1.1.1.1 servicem

Внимательно посмотрите вывод.
Проверьте, что данные выгрузились

ll csv_output

Вывод буде такой

итого 772
-rw-r--r-- 1 root root 605262 Сен 16 14:27 abonent.csv
-rw-r--r-- 1 root root   2857 Сен 16 14:27 abonent.csv.cfg
-rw-r--r-- 1 root root      0 Сен  3 15:41 abonent.csv.error
-rw-r--r-- 1 root root   1360 Сен 16 14:27 ip_pull.csv
-rw-r--r-- 1 root root    420 Сен 16 14:27 ip_pull.csv.cfg
-rw-r--r-- 1 root root      0 Авг 20 17:38 ip_pull.csv.error
-rw-r--r-- 1 root root    327 Сен 16 14:27 nas.csv
-rw-r--r-- 1 root root    965 Сен 16 14:27 nas.csv.cfg
-rw-r--r-- 1 root root      0 Июл 24 15:51 nas.csv.error
-rw-r--r-- 1 root root   5188 Сен 16 14:27 pay_card.csv
-rw-r--r-- 1 root root    666 Сен 16 14:27 pay_card.csv.cfg
-rw-r--r-- 1 root root    260 Сен 16 14:27 switch.csv
-rw-r--r-- 1 root root    678 Сен 16 14:27 switch.csv.cfg
-rw-r--r-- 1 root root      0 Июл 24 15:51 switch.csv.error
-rw-r--r-- 1 root root   1912 Сен 16 14:27 tariff.csv
-rw-r--r-- 1 root root   2034 Сен 16 14:27 tariff.csv.cfg
-rw-r--r-- 1 root root      0 Авг 20 17:35 tariff.csv.error
-rw-r--r-- 1 root root   4050 Сен 16 14:27 tariff_usluga.csv
-rw-r--r-- 1 root root   1611 Сен 16 14:27 tariff_usluga.csv.cfg
-rw-r--r-- 1 root root      0 Авг 20 17:35 tariff_usluga.csv.error
-rw-r--r-- 1 root root 112057 Сен 16 14:27 users_usluga.csv
-rw-r--r-- 1 root root    401 Сен 16 14:27 users_usluga.csv.cfg
-rw-r--r-- 1 root root    979 Сен 16 14:27 usluga.csv
-rw-r--r-- 1 root root   1657 Сен 16 14:27 usluga.csv.cfg
-rw-r--r-- 1 root root      0 Авг 20 17:35 usluga.csv.error

Файлы *csv.error должны быть с нулевым размером, либо отсутствовать

Шаг 5. Заносим в БД 5й версии данные сериях карт оплаты

python /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

Внимательно посмотрите вывод.
Подробно проверяем, что данные в биллинге соответствуют данным из 4й версии (хотя бы пару записей).

Шаг 6. Заносим в БД 5й версии данные о картах оплаты

python /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

Внимательно посмотрите вывод.
Подробно проверяем, что данные в биллинге соответствуют данным из 4й версии (хотя бы пару записей).

Шаг 7. Заносим в БД 5й версии данные о пулах IP

python /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

Внимательно посмотрите вывод.
Подробно проверяем, что данные в биллинге соответствуют данным из 4й версии (хотя бы пару записей).

Шаг 8. Заносим в БД 5й версии данные о коммутаторах

python /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

Внимательно посмотрите вывод.
Подробно проверяем, что данные в биллинге соответствуют данным из 4й версии (хотя бы пару записей).

Шаг 9. Заносим в БД 5й версии данные о NAS-ах

python /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

Внимательно посмотрите вывод.
Подробно проверяем, что данные в биллинге соответствуют данным из 4й версии (хотя бы пару записей).

Шаг 10. Заносим в БД 5й версии данные об услугах

python /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

Внимательно посмотрите вывод.
Подробно проверяем, что данные в биллинге соответствуют данным из 4й версии (хотя бы пару записей).

Шаг 11. Заносим в БД 5й версии данные о тарифах

python /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

Внимательно посмотрите вывод.
Подробно проверяем, что данные в биллинге соответствуют данным из 4й версии (хотя бы пару записей).

Шаг 12. Заносим в БД 5й версии данные о тарифных услугах

python /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

Внимательно посмотрите вывод.
Подробно проверяем, что данные в биллинге соответствуют данным из 4й версии (хотя бы пару записей).

Шаг 13. Заносим в БД 5й версии данные об абонентах 

python /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

Внимательно посмотрите вывод.
Подробно проверяем, что данные в биллинге соответствуют данным из 4й версии (хотя бы пару записей).

Шаг 14. Заносим в БД 5й версии данные о не тарифных услугах, подключенных абонентам

python /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

Шаг 15. Разблокировка пользователей и запуск
При миграции абоненты будут заблокированы, чтобы они стали разблокированными нужно выполнить команду:

/etc/init.d/worker stop
python /usr/lib/python2.7/site-packages/python_tools/client_fix_scripts/unblock_after_migration.pyc

При этом скрипт может во время работы завершиться некорректно. Нужно будет запустить его заново.
Корректное завершение выглядит так:

2015-12-25 14:20:18,637 - worker - unblock_after_migration - INFO - Разблокирую:2271
2015-12-25 14:20:18,662 - worker - unblock_after_migration - INFO - Разблокирую:2272
2015-12-25 14:20:18,676 - worker - unblock_after_migration - INFO - Разблокирую:2273
2015-12-25 14:20:18,686 - worker - base_worker - INFO - Обработано строк:925
[root@Carbon (asr_billing) new_migration]#

Шаг 16. Запуск обработчика

/etc/init.d/worker start

Что не поддерживается в текущей версии миграции:

  • финансовые группы
  • карточные абоненты
  • у абонентов снимаются обещанные платежи
  • Пароли, содержащие кириллицу, удаляются.
  • Слишком длинные ФИО обрезаются.
  • Для тарифов с неуказанной абон.платой ставится 0.
Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.