关于数据迁移的方法、步骤和心得
栏目:数据库应用时间:2014-12-08 09:10:29
关于数据迁移的方法、步骤和心得
在项目中常常会遇到系统完全更换后的历史数据迁移问题,以示对客户历史工作的尊重,何况很多数据仍有保存的必要。
那怎样做历史数据迁移呢?
系统分析:
1、分析原本的业务系统
精确到大致的系统功能模块、大致的处理流程便可
2、分析现有的业务系统
精确到大致的系统功能模块、大致的处理流程便可
3、分析二者自己的区分和差异
大致分析1下两个业务系统之间的区分,有助于肯定工作量和工作进度
4、分析用户对旧有数据的需求
分析对旧有数据的需求,才不至于盲目的全部性的进行迁移
5、分析用户对旧有数据的处理规则
旧有数据的处理规则,1般分为以下几类:
1、基础数据,通常这1类容易迁移,数据格式简单,但是会影响所有的相干业务数据,关注点为数据的主键和唯1键的方式。
2、纯历史数据的导入,仅供参考用的,这1类数据导入容易
2.1
纯历史数据
这1类数据处理起来会比较容易,1次性导入便可,后续采取增量数据导入。
2.2
流程性数据
这1类数据只有在记录完全关闭后才能结束,需要进行增量导入和数据更新,同时还要进行相干查询界面的开发,以保证旧有数据能够在新系统中查询的到。
3、新老系统表结构变化较大的历史数据
这1类数据的工作量是最重的,就需要仔细去研究新老业务系统的数据结构了。
1、尽可能通过甲方单位来搜集齐全相干原系统的相干设计文档,这1点对数据分析很有帮助,通过人的感觉和对数据的视察来分析毕竟不太靠谱。
2、在原系统上进行相干数据的视察,了解数据的变化和数据表数据的关系(对比较难以理解的相干字段很有帮助)
3、比较新老系统数据的差异,如果实在很不靠谱的话,建议按2.2去处理。
系统设计:
1、做完系统分析以后,对相干数据进行归类,基础数据、纯历史数据、变化较大的历史数据
2、先从简单的入手,给自己点信心
3、在excel表中进行相干表的数据字典对比,勾画出对应字段、转换逻辑、依赖关系、必要时在新系统表上做相应的冗余,等数据迁移终了后再清除。
关键点:
不同数据库的字段类型的匹配问题,比如SQLServer的text,在oracle应当对应clob,但是宁愿转换成几个varchar2,从实现角度相对容易些。
关于主键的问题,1致的数据类型尽可能保持现有状态,不1致的尽可能采取oracle的序列或sqlserver的identity
int,但是迁移终了后,要注意序列值的更新
系统实现:
1、PL/SQL或T-SQL,DTS、SSIS或PowerBuilder的管道作为数据迁移的方式
2、相干业务逻辑的迁移,与数据完全性和业务相干的存储进程、触发器、函数的改写,乃至SQL的改写
3、业务查询页面的编写
后话:
1、数据迁移没有特别或高级的方法
2、对业务数据的分析最为关键,需要不断的尝试在新系统上不断的测试
3、数据迁移技术,主要通过SQL、存储进程、乃至游标来实现,优先级也如上
还有1种数据迁移仅仅是数据库的平迁或异构数据库迁移
数据库平迁,即为了性能扩大需要从1台服务器迁移到另外1台服务器上,用数据库的导出导入或备份恢复工具处理便可,固然也要斟酌迁移后的1些序列字段的初始值。
异构数据迁移,即从1个数据库平台迁移到另外1个数据库平台,用ETL工具或SQL都可实现,不过要注意业务逻辑的迁移,即存储进程、函数、触发器之类的
------分隔线----------------------------
------分隔线----------------------------