将SQL Server数据移植到Oracle的工具与技术

日期: 2009-06-03 作者:Brian PeaslandJoe Toscano翻译:ecubestudio 来源:TechTarget中国 英文

问:我想将100G的SQL Server6.5数据库的数据移到Oracle9i R2上。数据转换服务(DTS)好像跟我们想象的一样快:移动1M的13列的表的数据行将花费数小时。实现此需求最好的工具是什么?   答:首先,我假定你可以在SQL Server7.0或2000中使用数据转换服务(DTS),甚至你的源数存储在SQL Server6.5中。(当然,DTS不存在6.5版本的SQL Server中,我们使用BCP)。

并且,假定你已经有了必须的Oracle ODBC驱动,以便你可以创建用来提供Oracle连接的详细信息数据源名(DSN)。一旦你有了此驱动,你可以将Oracle指定为你的DTS包……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

问:我想将100G的SQL Server6.5数据库的数据移到Oracle9i R2上。数据转换服务(DTS)好像跟我们想象的一样快:移动1M的13列的表的数据行将花费数小时。实现此需求最好的工具是什么?

  答:首先,我假定你可以在SQL Server7.0或2000中使用数据转换服务(DTS),甚至你的源数存储在SQL Server6.5中。(当然,DTS不存在6.5版本的SQL Server中,我们使用BCP)。并且,假定你已经有了必须的Oracle ODBC驱动,以便你可以创建用来提供Oracle连接的详细信息数据源名(DSN)。一旦你有了此驱动,你可以将Oracle指定为你的DTS包中的目标文件。这是我给出的关于你使用的DTS包的一些建议。

  你可能考虑数据分割。不用DTS包中的单个数据管道,而使用5,6或7个可以同时运行的数据管道。查看源数据的列并且想一想有没有办法可将数据源列上的数据进行水平分割。如果你的源数据包含日期时间列,这将会是一个比较理想的选择。想一想你能否通过季度,月等来分割数据。我也曾见过通过地理区域来分割数据的。

  设计好你的包,以便它可以并行执行这些成倍增加的转换(数据管道)。当你在设计模式下执行包,当前正在执行的任务将会由一个绿色的执行箭头标识出来,并且也会显示。你的目标应该是使所有的数据管道并列运行。

  来做个移动数据子集的试验,在这个试验过程中,你将SQL Server中的数据转移到一个中间文本文件中,然后再转移到Oracle中。你可以看到使用SQL源与Oracle目标之间的中间文件来转移数据速度会更快。

作者

Brian Peasland
Brian Peasland

Techtarget旗下Searchoracle网站的资深专家,有16年IT行业经验、计算机科学硕士、专攻数据库方向,曾担任系统管理员等职。此外,他还获Oracle 7.3、8和8i的OCP数据库管理员证书,目前为SGT Inc.公司首席DBA。

Joe Toscano
Joe Toscano