日期:2014-05-17  浏览次数:20605 次

旧系统迁移新系统,数据库结构不同,求迁移策略
要求:旧系统数据全部迁移至新系统,达到如同新系统产生的数据一样

难点1:旧系统约400个表,新系统约300个表,数据表结构完全不一样,数据量大。
难点2:旧系统由于过去有BUG或其他原因,导致部分数据是不完整的,但新系统对该数据可能要求是必填的。
难点3:外键映射复杂,且在新系统中主键的数据类型可能不同(比如旧系统是数字,新系统是uniqueidentifier,甚至更复杂的情况)
难点4:客户要求新系统上线时旧系统下线,一上一下(客户要求无法变更)。
难点5:旧系统对外提供接口,该接口被其他系统所用。
难点6:割接数据肯定不是一两天完成,旧系统仍然每天产生新数据。
难点7:不确定的内容需要客户确认(比如旧系统某业务在新系统不适用),但客户不能及时给予答复。
难点8:待定的部分可能会影响数据迁移的进度。
难点9:附件数据迁移,文件服务器的文件也需要迁移,但新系统对某类型附件要求存的是.jpg,但旧系统目前存储的是rar。

第一次做数据割接,没什么经验,希望各位能结合其中的难点,谈谈数据迁移的策略,经验和技巧,也当是对自己的锻炼。


------解决方案--------------------
你这也就是把还需要的数据迁移过去。
------解决方案--------------------
给客户重新改版,那你们就得要重新的教他们怎么用

着重说你们新版的优点,说服他们了 其他好办 

关键还是很多数据不能给搞丢了
------解决方案--------------------
链接服务器,然后手工编写 insert语句,把旧数据插入到新数据库中去。
------解决方案--------------------
我也想知道解决方案
------解决方案--------------------
没有捷径,只能手工一个一个表的迁移数据..


------解决方案--------------------
这么多需求?我的建议就是,先备份,然后对原来的数据库进行修改,达到迁移要求后再进行迁移工作。
------解决方案--------------------
建议使用两个SSIS包,一个做整体切换,另一个定期不定期做切换后的新数据转移.
当然要对每个表进行实际分析了.
------解决方案--------------------
没有捷径,只能先将所有表的对应关系整理好,然后可以用Linked server或者SSIS将数据导入。
------解决方案--------------------
写一个专门的迁移转换系统。。。。。
------解决方案--------------------
给楼主一个解决难道3的方法:
对于 主键int(bigint) to guid,在mssql中可以使用:
e.g.

Declare @x int
set @x=454
select convert(uniqueidentifier,convert(binary(16),@x)))


解决了难点3,其他问题好办。

------解决方案--------------------
其实LZ说的这些难点。感觉就3块

1、需求分析,旧系统有的,根据需求,看是否有需要删减,增加,调整的(最终,就是新系统更适合现在的状况)
【难点 5,6,7,8】

2、数据整合,原旧数据格式,存放位置等,对应新程序进行整合。
【难点 1,2,3,9】

3、新系统测试(所有设计环节的相应测试一定要到位)
【难点 4】

对应可能不准,不过思路大概就是这样。
------解决方案--------------------
那只能对每个表写指令迁移数据。。开始在测试环境测试两三次
关键参照等,只能分清先后