数据迁移场景

企业业务发现,原系统无法满足业务需求,需要开发新的系统替换原有系统,而原系统中的历史数据或正在进行中的业务数据需要在新系统中体现,新系统上线前,需要完成旧系统向新系统的数据迁移。

系统切换方式

系统的切换方式,会影响数据迁移方式的选择。新老系统进行切换时,常见的几种操作方式:

确定新系统上线时间后,新老系统并行运行,新订单使用新系统,在途订单使用老系统,待老系统所有在途订单都完成后,将历史数据一次性迁移至新系统。

确认新系统上线时间后,老系统停用,所有数据及功能全部切换至新系统。

新系统的调整比较大,业务流程也进行了大规模调整的情况下,也会采用选择年或月的结算区间选择上线时间进行切换,切换后,业务数据不进行迁移,历史数据保留在旧系统进行查看。

数据迁移内容

数据

基础数据:支撑各个模块及各业务的主数据,如客户、资产、项目、产品、车辆、工具信息等

字典数据:系统全局的字典数据

用户数据:用户账号、组织、角色、权限等

业务数据:业务进行过程中产生的数据,如订单数据、交易数据、账单数据、操作数据、各环节的流转数据等。

业务数据还包括:

历史数据:业务上已经完成结算的或其他完成节点已经产生的数据。

在途数据:系统升级或切换的同时,业务也在正常的运行,系统中会存在非常多在途数据,如未完成的订单数据,在途中的运单数据等;在途数据的处理需要特别关注。

数据间的关联关系:关系型数据通过ID或主键进行数据关联,迁移时数据之间的关联关系需要进行重新对应

文件:部分附件、图片等数据和业务数据直接关联,需要重新存储和建立联系,一些单独存储的文件可直接转移到新服务器,同时需要存储对应的URL等。

迁移方式

影响迁移方式选择的要素非常多:迁移数据量的大小、传输的时长、业务是否可暂停。

离线迁移

Excel导出-导入:通过导出-导入Excel的方式,将数据导入到新系统,导出的数据可根据新系统的数据格式进行调整后导入;

数据库同步:通过Sql或数据库同步工具,将新系统和老系统的字段进行对应,批量导入到新系统中;

在线迁移:

接口传输,通过定义和编写接口,实现新老系统之间的数据同步,新旧系统切换需要双系统并行的场景下,接口传输可实现新老系统之间的双向同步。

企业在信息化建设过程中,会存在外采转自研的场景,项目不可控时,尽量实现系统一次性切换升级,避免系统并行。

数据库同步:面对迁移数据量比较大,耗时比较久的项目时,可以借助数据库迁移工具等,采用部分数据会进行全量+增量迁移的方式,数据全量迁移到新系统,然后执行每天的自动增量迁移或手动增量迁移,系统切换前,要完成最后一次增量备份。

数据验证

迁移的过程中和迁移后需要做数据的验证,确保数据的准确性、完整性、一致性,如:新旧系统的数据数量、数据内容、迁移过程中未产生增量数据等。数据迁移一般需要多次的预演和多次的验证,保证正式系统正式切换时,数据迁移的成功率。

验证需要准备详细的验证用例,和测试用例相似:

基础数据、数据字典的变化频率较低,可预先进行数据同步,属于上线前的环境准备工作,可提前同步到新系统并完成测试;

已经完成的业务历史数据,同步后通过查询、导出、BI等关联功能验证数据是否正确,完整;

未完成的业务在途数据,需额外进行业务操作流程的验证,根据数据所处的流程阶段,进行未来的业务正逆向业务操作,确保在途数据能顺利完成。

结语

近几年传统行业进行信息化建设,完成了多个项目的外采转自研,经历了多次的数据迁移,关系型数据库、非关系型数据库、生产系统、办公系统。尝试将数据迁移的一点经验总结下来,还有非常多欠缺,每日一点成长,以此自勉。

发表评论