radius计费系统向蓝海计费系统数据迁移技术总结
本文仅供参考,在实际环境中测试成功。欢迎大家提出问题。
1. 首先要有一个清晰的思路和明确的目标。
本次计费迁移主要将老计费radius management系统的用户,迁移到蓝海计费系统。由于老计费系统和蓝海计费有相似性、同时具有一定的差异性。所以要修正老计费系统数据格式符合蓝海计费的要求(蓝海计费已经提供了数据导入的标准格式)。这样才能将老计费平安的导入蓝海系统,顺利进行计费系统迁移。
2. 准备工作
2-1首先要收集新老计费系统的数据格式和数据库的相关权限。
2-2收集需要迁移的需求,本次迁移并不是将所有的用户迁移到蓝海系统。根据公司营长的需要按要求将数据导出老系统、再导入新系统。
2-3为了保证计费系统的安全性,需要将老系统的数据库备份到测试环境进行测试。同时要做好数据库的导出时间点。
2-4先做部分数据的产品导入。观测导入效果后再研究后续的工作。
2-5由于数据导入蓝海计费系统,在后期的运营中也要进行数据检测。
2-6收集新旧系统的相关数据,本次主要收集数据的套餐信息、资费信息。
3风险
3-1本次数据迁移,如果失败会导致所有迁移用户不能正确使用网络。蓝海系统手动录入的用户不受影响。为了本次迁移的顺利完成,通过和营帐进行商议。先将某一个很小的小区的10个用户进行迁移,做好随时恢复的准备,根据用户反映做出有效处理。
3-2在数据迁移完成后的一段时间内,暂定1个月或者更长时间任何人不得删除老计费的数据并保证老计费一直处于运行状态。
3-3如果迁移失败,会导致所有涉及迁移的用户不能正常拨号。故必须做好计费恢复、割接事前通知、事中做好客服的安抚工作。
3-4迁移时间尽量选择在用户上网人数较少的时间段。
4时间
4-1本次迁移按照公司安排,在测试迁移成功的基础上进行数据的一次性迁移。计划耗时10个小时,尽可能将时间压缩到最小。
5资源调度
5-1本次迁移需要技术部研发部相关人员参加、计费营帐资深管理员、网络割接部门的同事、网管部门同事、客服同事做好通知和解释工作,有效防止网络中断。
6.实施步骤:
6-1用putty通过ssh连接到老计费的linux系统上,
6-2用获得的数据库帐号执行数据库备份操作,命令如下:
Mysqldump –h227.0.0.1 –uroot –pxxxx radius>radius_201512310800.sql;
6-3在搭建的测试数据库环境执行如下数据库还原操作。
Create database radius;
Mysql –h227.0.0.1 –uroot –p***** radius<radius_201512310800.sql;
6-4新建一个业务表格,将营帐给的最新资费套餐导入此表。Xls格式的导入不再详述。
SELECT
u.username AS '账号',
k.valueAS '密码',
IF(u.`firstname`!='',u.`firstname`,'测试')AS '姓名',
IF(u.`taxid`,u.`taxid`,'610000000000000000')AS '证件号码', //处理×××号码为空的字段
IF(u.mobile,u.mobile,'13000000000')AS '手机号码', //处理手机号码为空的字段
IF(u.`address`!='',u.`address`,'xxx')AS'联系地址', //处理地址为空的字段
''AS '账号余额',
u.`staticip`AS 'ip地址',
u.`createdon`AS '开始时间',
u.`expiration`AS '结束时间',
#if(SUBSTRING(u.`address`,1,2) IN ('小区或社区名称'),'17','18') as '区域编号', //处理地址自动化分行政区域的字段,并自动按规范设置区域编号 17 18为区域编号,可以根据相关规范进行设定。
'陕西省xx市xx区' AS '区域名称',
'1'AS '运营商编号',
'本地'AS '运营商名称',
'5'AS '项目编号',
'BRAS'AS'项目名称', //计费类型
t.srvid_newAS '产品编号',
t.srvname_newAS '产品名称',
u.`createdby`AS '开户人员',
''AS'用户备注1',
''AS'地址池名称',
REPLACE(u.`comment`,'\\','') AS '用户备注',
''AS'发票号',
''AS'固话号码',
''AS'操作人员',
''AS'用户属性'
#INTOOUTFILE 'e://lanhai.csv' //设置导出的文件名
#FIELDSTERMINATED BY ',' //设置导出数据以逗号分割字段
#OPTIONALLYENCLOSED BY '"' //设置字段以””进行包裹
#LINESTERMINATED BY '\n' //设置行结束符为换行符\n
FROMrm_users AS u
LEFTJOIN radcheck AS k
ONu.username=k.username
LEFTJOIN srvname_temp AS t
ONu.`srvid`=t.srvid_old
WHEREk.`value` <>1
ANDSUBSTRING(u.username,1,9)='029010000'
ANDu.`address` LIKE '文景%'
AND u.`expiration`>'2015-05-31'
6-8将导出的csv在蓝海计费里面通过数据库管理下的数据导入功能将数据导入。注意导入的过程中蓝海计费的提示信息。如果发现错误,请认真进行分析。
6-9由于数据涉及到公司的机密,故再次就不一一附图。
本文至此结束。