Время выполнения инструкции: 2-3 часа на каждые 500 абонентов, зависит от объёма базы и производтельности серверов |
Окончательная миграция из Carbon Billing 4 в Carbon Billing 5 для запуска пятой версии в коммерческую эксплуатацию должна проходить под наблюдением специалиста CarbonSoft. |
Время миграции просьба заранее согласовать в техподдержке по телефону или в соответствующей заявке. |
Общие сведения:
При миграции с 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
Что не поддерживается в текущей версии миграции:
|