分享
 
 
 

.NET框架下从Oracle到SQLServer的迁移

王朝oracle·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

如果你正在营造微软 .NET 网络而后端运行着 Oracle 数据库,那么你应该把后端迁移到 SQL Server。这一问题的核心不在于比较数据库的性能而是寻求最适合你的工具。在 .NET 体系结构下要回答这两个问题,答案只有一个,那就是 .NET Server。在这篇文章里,我们首先探究下为什么你的网络中存在 Oracle 服务器,然后讨论如何将其迁移到 SQL Server,最后阐述由这一举措所能获得的利弊。

系统中的Oracle

如果在你的网络中存在 Oracle 服务器,你需要搞清楚为什么需要它的理由 ? 谁在使用它,什么应用程序要用到它,在它上面正运行着什么应用程序等等。

谁在使用它?

首先你应该搞清楚谁在使用Oracle服务器。否则还没有得出答案就匆匆搬走服务器很可能会促成大错。当然,真要这么做倒也是一种很快就能找出数据库用户的方法。但我们还是劝你万万不可。

网络管理员可能有监视或记录Oracle使用情况的执行过程。开发人员可能要采用当前的服务器开发应用程序。经理们可能要根据数据库保存的数据得出分析报告或利用 Oracle 后端做出企业决策。而且数据库的用户完全可能遍及世界各地。在确定因从 Oracle 到 SQL Server这一迁移过程而受到影响的用户之时,你必须考虑到以上所有这些可能性。

什么应用程序要用到它?

现在假设你一个挨一个地问遍了所有的用户以了解谁在使用 Oracle ?而他们的回答恰恰都是否定的,那么你接下来就应该查看记录文件了解哪些工作站正在访问数据库。在你检查这些记录文件的时候,你可能会发现:不仅仅只有工作站才访问数据库,其他服务器也要访问数据库。

好,拿起笔来记下正在访问数据库的服务器,然后找出这些服务器访问数据库的特定应用程序。通过比较数据表内保存的数据和服务器上运行的应用程序即可确定出这类应用程序。

Oracle服务器上在运行什么应用程序?

既然你已经知道了访问数据库的用户和外部应用程序,现在你就需要找出数据库服务器自身正在运行的应用程序了。这些应用程序可能是数据库的存储过程(以及相应的触发器、定制数据类型以及安全性设置等)也可能是不在 Oracle 以内运行的独立应用程序。你尤其得注意添加到服务器之上的 Oracle 开发工具。

迁移到 SQL Server

你永远都不要冲动地立即拨去Oracle 服务器的电源装上在 SQL Server。关键服务器在迁移的时候一定要三思而后行。为什么这个过程要专门起个迁移(migration)这名字?还不是因为迁移总不是突然发生的。如果你采取一些简单的合理步骤,迁移过程就能在没有任何障碍的情况下实现。

本机应用程序和外部应用程序

迁移应用程序请采取以下步骤:

1. 在网络中安装新的 SQL Server。

2. 创建应用程序使用的“设备”和数据表。

3. 禁止应用程序访问数据库而实现应用程序的离线。

4. 从 Oracle 拷贝当前数据到 SQL Server。

5. 把所有的应用程序都指向新数据库。

6. 允许应用程序访问数据表和设备中的新数据。

考虑SQL

在 SQL Server和 Oracle 之间迁移存在一个要命的问题:它们分别说着 SQL-PL/SQL (Oracle)和Transact-SQL (微软)这两种不同的SQL方言。

在大多数情况下,如果你能使用其中一种SQL语言就多半能使用其它的SQL语言。考虑到SQL的函数、操作符、语句等等因素我特意搞了一份SQL程序员参考,这份资料表明了各种DBMS所支持的特性。当然,如果 SQL 产品的这些美国供应商们都老老实实遵守美国标准SQL(ANSI-SQL)哪里还会产生这样大的问题!

此外你你还可能会遭遇以下的问题:

Oracle 的dual表――在 SQL Server上你可能会遇到select ‘x’;这样的语句。而在 Oracle上这条语句就必须被转换成select ‘x’ from dual; 。dual是一种由Oracle生成的系统表。除了这个 SQL 语法问题之外,你还不能把这个表拷贝到你的 SQL Server上,因为它是一个 Oracle 系统表。

Truncation -- 两种DBMS 都支持FLOOR和ROUND函数,但是 Oracle 还多了个 TRUNC 函数。如果你的 Oracle 系统用到了TRUNC 函数,那么牵扯之处就需要你重新编辑了――可能得想法换成FLOOE或ROUND函数。

Concatenation-SQL Server 7 不支持 ANSI || 连接方法,但是 SQL Server 2000却可以支持了。现在两种数据库都都采用加号(+)表示连接,但最好还是把这个符号用在算术运算上吧!

就看你到底用的是两种服务器的具体版本了,有关 SQL 语言的迁移问题几乎总是会突然在没有预料到的情况下冒出来。

放弃Oracle 的业务案例

这种数据库的迁移并不是简单的感情游戏,选择微软产品而非 Oracle 是受到业务案例支持的。Oracle 在法庭和宣传战中为了打败微软投入了相当多的资源。然而,从经济性的角度来看,Oracle并不具更高的性价比。此外,Oracle 只有一种核心产品,相比微软还是底气不足。复杂的销售过程之外,你最好得找个更牛气点的公司提供支持。这个公司应该健康向上,产品受到普遍欢迎,在遭遇更强大的对手之前得保证这家公司至少在数年之内非常强大。

迁移到 SQL Server又能获得什么呢?

首先,你获得的系统同你的网络体系结构保持了高度的一致性。你无需专人负责 UNIX 系统的管理。为 DBMS 量身打造的管理工具能以最佳状态同那些网络操作系统工具协同工作。

其次,系统实现了对 .NET 应用程序的内在支持。.NET体系结构并不要求你一定要使用 SQL Server,但这种服务器是缺省的数据库。用于Oracle 的 ODBC 驱动程序当然也不错,但它们总是一个可能的故障点。

第三,在.NET网络下采用Oracle的成本比采用SQL Server更高。当你购买更多的Win2K 服务器许可证以及VS.NET和Office许可证时,你可能会得到折扣。

最后,就算你单独购买了 SQL Server系统也可能比Oracle来得便宜。最近购买Oracle 许可证在讨价还价的时候还难得像拔牙似的。我记得曾问过一个销售代表价格,他竟然说:“你买得起吗?”

小结

如果你正在营造.NET网络,采用SQL Server作为你的DBMS是理智的,原因在于它正是微软 .NET Server应用套件的核心组成部分。从平台之间的迁移是一个必须仔细考虑、周密部署的重要过程。在转换平台之前你更应该拥有一个统一、有效、易于管理和可靠的.NET基础

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有