本文章和大家探讨一下老系统升级到新系统的方案,本方案是基于我接到了一个客户的需求是系统迁移。方案从以下几个方面阐述的。
一、系统切换工作流程
二、系统迁移需求分析
前期调研是数据转换中很重要的一个步骤,也是至关重要的一部分。在进行数据转换工作前,我们需要先认真阅读系统的相关文档,如《数据字典》、《系统概要设计报告》等,来熟悉原有的系统。当然在阅读文档的过程中肯定还会有理解不清晰的地方,这时还需要熟悉原有系统的工程师的帮助。
- 对于先用的系统的需求以及功能点的梳理分析;
- 对于现有系统功能点的画出业务流程图,和Costa业务部门确认业务流程的正确性;
- 现有系统的系统架构、实现语言以及数据库的版本;
- 现有系统的数据量级;
- 现有系统的数据字典;
- 现有系统架构与第三方的通信接口;
- 将所有数据表进行分类,如系统参数类、代码类、综合业务类、相关业务类等等。 对所有数据表的数据组成、数据来源、用途等进行描述;
- 并非所有的数据都是需要进行转换的,在《数据字典分析报告》中要指出那些数据表是需要进行转换的,那些是不需要进行转换的,对于不需要转换的表要说明不需要转换的原因;
- 描述数据在各表中的流向,对于关键的或复杂的业务点要做详细说明;
风险分析
由于老系统运行时间比较久,对于现有系统很难描述清楚现有系统的业务逻辑,尤其是细节,可能当初设计的人已经离职了;
三、迁移方案总体思路
1、保障业务中断停机时间最小化
业务中断对于用户无论是运行环境还是测试环境均存在较大的恢复风险,这样的风险特别对于时间敏感型数据和数据完整性业务都是不可以接受的。我们基于这样的要求,考虑到如何将停机时间最小,能否实现0停机的建设目标?
- 梳理系统核心业务,拆分核心业务,保证业务的独立性
- 迁移系统分主次,尽量避免统一迁移,而是逐步迁移
- 核心业务迁移保证兼容老系统业务
- 新系统本地留存数据,同时将数据同步到老系统以保证未迁移的系统可用性
下图为会员注册模块的迁移流程图
2、数据转换设计
转换设计阶段主要是完成新旧数据字典的对照,同时明确各个表中具体数据字段的转换方式。在转换设计阶段主要是编写《数据字典对照报告》 《数据字典对照报告》主要描述新旧系统数据表间的对照关系以及代码对照关系。以新系统为准,原系统作参照,将原系统的数据字典对应到相应的系统数据字典中。在对照过程中,需要遵循数据照搬原则,数据尽量不要作处理。 在数据字典对照表中需要进行转换的数据字段应该一一对应,对新旧数据表中字段的名称、类型、精度等都要有详细的描述,同时还要明确数据的转换方式。数据转换方式主要有以下几种
- 直接转换。直接转换方式是最常用的方式,就是将原表中对应字段的数据原封不动的搬到新表中来。按照“数据照搬”原则,我们应该应该尽量采用这种方法。
- 程序转换。对那些需要进行计算才能进行转换的数据将采用程序转换方式进行。
- 代码对照。某些代码字段,往往新旧系统的编码不相同,这时就需要参照代码对照表进行代码对照转换。
- 类型转换。少数数据可能需要对类型进行转换,如就表以字符串‘YYYY-MM-DD’来存放日期,而新表中以DATE型来存放日期,这时就需要进行类型转换。
- 常量转换。新表中某些字段可能存在缺省值,这时将采用常量转换方式,当旧表没有对应字段或旧表对应字段数据为空时,将直接在新表中写入缺省数据。
- 不转换。对于旧表有但新表中没有的字段将不作任何转换。
新旧系统代码对照列出了全部需要进行转换的新旧系统数据表中存在的二级代码间的对照关系,主要以二级代码对照表的形式来反映。
3、数据迁移
数据整理策略
数据整理就是将原系统数据整理为系统转换程序能够识别的数据。数据整理大致分为两个阶段:第一阶段就是将不同类型来源数据采集备份到统一的数据库中;第二阶段就是将原始数据进行整理,按照不同的要求分类进入不同的中间数据库,为数据转换提供中间数据。数据整理过程采用了以下方法:
1)确保原始数据的完整性
在进行数据整理之间,我们先需要对原始采集数据进行备份。备份的目的有两个:一个是统一数据库,便于数据转换,另一个就是为以后数据追根溯源提供参考依据。
2)数据分级过滤策略
数据分级过滤就是把数据按照不同的数据级别进行分类整理进入不同的中间数据库中。本系统中我们把数据分为三个级别:废弃数据、待调整数据、可转换数据。废弃数据就是该部分数据的存在对系统资源造成浪费的数据,并且会影响以后系统的运行。待调整数据就是该部分数据严重影响新系统的运行,必须进行人工调整后,方可进行数据转换。可转换数据就是该部分数据不需做任何处理,基本满足数据转换的要求或者是该部分数据新系统建议调整,但是不影响系统的运行,可以等新系统运行后再调整,这样可以为数据转换工作节省很多时间。
3)借助数据整理相关工具
数据整理非常艰巨,涉及的数据量很大,通过人工检查是不可能完成的,因此必须编写相关的数据整理工具完成数据整理。包括数据整理工具和数据纠错工具。数据整理工具负责将原始备份数据库中的数据进行分类进入不同的中间数据库;数据纠错工具负责提供友好、方便的工具界面供用户方相关人员完善和纠正错误数据。
4)利用API接口作为桥梁
由于原系统和新系统的数据库结构可能不一样,所以采用API接口作为衔接新旧系统数据的重要桥梁,对于建立新旧系统的对照关系很重要。一旦业务人员对新系统中某项转换数据存在疑问的情况下,就可以通过API接口,顺利找出原数据。
数据转换
数据转换就是将整理后的数据,依照对照表的要求进行转换,并写入到新系统。这个过程可以通过交换系统实现。
数据整理与转换步骤
1)进行数据模拟移植
根据设计的数据移植方案,建立一个模拟的数据移植环境,它既能仿真实际环境又不影响实际数据,然后在数据模拟移植环境中测试数据移植的效果。 数据模拟移植前也应按备份策略备份模拟数据,以便数据移植后能按恢复策略进行恢复测试。
2)测试数据模拟移植
根据设计的数据移植测试方案测试数据模拟移植,也就是检查数据模拟移植后数据和应用软件是否正常,主要包括:数据一致性测试、应用软件执行功能测试、性能测试、数据备份和恢复测试等。
3)准备实施数据移植
数据模拟移植测试成功后,在正式实施数据移植前还需要做好以下几个方面工作:进行完全数据备份、确定数据移植方案、安装和配置软硬件等。
4)正式实施数据移植
按照确定的数据移植方案,正式实施数据移植。
4、数据整理和转换的关键
对于多源异构数据库之间的数据转换,因为目标数据库的格式和约束的限制严格,直接编写转换程序实现困难,可在原有数据库系统中编写转换程序。
对于源数据库、目标数据库结构有差异的数据,建立API接口,API接口在原数据库平台中建立。
非空处理:对于应该非空但实际为空的记录制定处理规则。
取值约束处理:对于有取值范围约束的字段进行规范化处理,即将转换后的数据取值规范到该范围内。
主键处理:重新对中间库进行编号。
填写外键:每个数据库或多或少存在外键,外键越多,标明与其它库关联越多,这样的库应后处理;反之,外键越少的库应该先处理。
唯一键处理:对要求唯一的数据项(主键、唯一键)进行唯一检测,并对检测出的不唯一的记录,制定处理规则。
附加分散处理:对某些表中的某些字段进行数据规范化处理,即将不合规范的数据替换成规范的数据,几个表之间的关联处理,以及一些特殊处理等。
数据一致性处理:对于有多个数据源的数据进行一致性检查, 制定处理规则。