公司项目oracle数据库,要迁移到mssql数据库,有啥省心省钱的工具或方案吗

晓风残月0110 2015-03-12 11:23:58
加精

各位大大,我的oracle数据库项目,要迁移到mssql数据库,有啥省心省钱的工具或方案吗

迁移内容:

oracle表结构
oracle表部分初始化数据

·有分就是任性~~
...全文
3930 68 打赏 收藏 转发到动态 举报
写回复
用AI写文章
68 条回复
切换为时间正序
请发表友善的回复…
发表回复
wild_horse_007 2015-08-13
  • 打赏
  • 举报
回复
给大家分享一下我的数据同步工具






wild_horse_007 2015-08-13
  • 打赏
  • 举报
回复
我正在进行与楼主一样的工作,将一个大型ERP系统从ORACLE转到SQL SERVER 2008R2,有一千多个表,进展还是比较顺利的,基本没有遇到太麻烦的问题,因为ORACLE和SQL SERVER 都在同时使用,所以自己使用PB的数据管道写了一个数据即时同步工具,其实也不算即时同步,是每融几分钟同步一次。表结构虽然可以使用PB的数据管道同步,不过我还是自己手动修改SQL,因为改一个表只要1分钟,我觉得没必要用工具,还是自己确实过安心一点;视图、存储过程我也是自己手工修改,问题不大,因为我比较喜欢写SQL代码 。
fish_dream 2015-06-25
  • 打赏
  • 举报
回复
使用pb数据管道,
晓风残月0110 2015-04-22
  • 打赏
  • 举报
回复
谢谢苦行僧,见到一个面熟的,我07年玩论坛的时候认得你 项目太忙,迁移工作又被推迟了, 帖子放的太久也不好,还是先接了帖子, 我会将最后整理的步骤发布到csdn个人博客
hery2002 2015-04-18
  • 打赏
  • 举报
回复
1-2-3步是否可以合为一步,通过ETL来实现?数据类型在SSIS的转换中已经可以完成,SEQUENCE的话,最好是在插入的时候设置为OFF,等数据插入完成了再统一设置为ON即可,把起始值设为当前表的最大值即可,通过遍历完成。 前面提到的SSMA工具也可以尝试一下。
Tiger_Zhao 2015-04-09
  • 打赏
  • 举报
回复
关于第二步:
SQL Server 2012 也有序列了
CREATE SEQUENCE (Transact-SQL)
晓风残月0110 2015-04-09
  • 打赏
  • 举报
回复
第一步:(正在进行中。。。) 转换所有表结构从oracle到sql server

数据库基本转换完成,主要用到的数据类型转换如下
/*
Oracle 10		Mssql2005

NUMBER(n)n>5		int
NUMBER(n)2<n<5	smallint
NUMBER(1)			bit 只有0,1 
NUMBER(1)			tinyint  1<x<9
NUMBER(2)			tinyint  10<x<100
NUMBER(n,m)		decimal(n, m)
VARCHAR2(20)		varchar(20)无汉字
					nvarchar(20)有汉字
Date				datetime
Clob				text
blob				text
Blob (图片)			Image 
SYS.XMLTYPE		xml
*/

第二步: oracle序列迁移到sql server ,项目中大量使用序列,且很多是先拿序列,所有直接使用sql server 递增会出现问题 第三步: oracle中数据迁移至sql server 第四步: 更改项目数据访问层代码 第五步: 使用IOC完成数据库自动切换
newnazi 2015-03-29
  • 打赏
  • 举报
回复
不同类型数据库转换 没有特定的工具 表结构转换需要人工校对 其他的就手工吧
靠谱的JIAO 2015-03-27
  • 打赏
  • 举报
回复
用powerdesin,不过转后的sql还需要自己改下
吉普赛的歌 2015-03-26
  • 打赏
  • 举报
回复
不明白你为什么要用sqlserver2005, 而不用 2008 或者 2012。 2008 比 2005 要好很多的。 你现在不升级, 到后面又是麻烦, 何苦呢? 特别是操作系统, 建议用 winserver2008或者 winserver2012, 而不是 winserver 2003
alexander0729 2015-03-24
  • 打赏
  • 举报
回复
无非就是数据+逻辑 导数据的话,就无所谓了,都是老鸟了,连个数据都导不过去?这不可能吧,无非就是快与慢的问题, 再慢也慢不到哪去。 逻辑的迁移,这是比较麻烦的,没什么通用的工具, 而且还要考虑到性能的优化问题, 所以最好的办法就是最笨的方法:重写!
Tiger_Zhao 2015-03-24
  • 打赏
  • 举报
回复
去掉去序列,用自增交互更少啊。
怎么会设计在程序端取序列的?要取也应该在触发器、存储过程中啊。
晓风残月0110 2015-03-24
  • 打赏
  • 举报
回复
第一步:(正在进行中。。。) 转换所有表结构从oracle到sql server


/*

				高效方案		
Oracle 10		Mssql2005		

NUMBER(n) n>1	int	

NUMBER(1)		Bit				值为(0,1)
				Tinyint			值为(1~9) 
				
VARCHAR2(20)    Varchar(20)		

Date			datetime	

*/
第二步: oracle序列迁移到sql server ,项目中大量使用序列,且很多是先拿序列,所有直接使用sql server 递增会出现问题 第三步: oracle中数据迁移至sql server 第四步: 更改项目数据访问层代码 第五步: 使用IOC完成数据库自动切换
晓风残月0110 2015-03-24
  • 打赏
  • 举报
回复
这几天有点忙,有其他紧急工作要做,所有数据库迁移工作延误了,也没有及时把动态更新上来,先把整理出来的一部分发上来 楼上各位建议的etl和formtool都不错,另外Tiger_Zhao提到的问题, 我的项目在使用oracle序列时,在没插入数据之前把序列取出来使用了,是否有好的建立
引用 48 楼 Tiger_Zhao 的回复:
3)SQL Server用自增列,Oracle用触发器自动取序列,程序是一样的。
天-笑 2015-03-23
  • 打赏
  • 举报
回复
关注下,留个脚印
nihao88a 2015-03-23
  • 打赏
  • 举报
回复
学习一下,帮顶!
xiaoxiangqing 2015-03-22
  • 打赏
  • 举报
回复
用自带的导入导出比较方便
haitao 2015-03-20
  • 打赏
  • 举报
回复
表结构可以导出为sql建表语句,只是个别字段类型、写法可能有点差异 数据是利用现成工具,还是自己写一个工具,还是导出为insert sql语句,看哪一种方便了 其它sql就要注意各自的方言了,人工转应该也问题不大
zhangmeeno 2015-03-20
  • 打赏
  • 举报
回复
我就是为了 有分就是任性 来的
CCCCCchenw 2015-03-19
  • 打赏
  • 举报
回复
楼主加油 加油
加载更多回复(39)

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧