关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » SQL Server ».NET框架下Oracle到SQL Server迁移

    .NET框架下Oracle到SQL Server迁移

    2015-11-23 00:00:00 出处:ITJS
    分享

    假如你正在营造微软 .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基础。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    hiberfil.sys文件可以删除吗?了解该文件并手把手教你删除C盘的hiberfil.sys文件

    Window 10和 Windows 11哪个好?答案是:看你自己的需求

    盗版软件成公司里的“隐形炸弹”?老板们的“法务噩梦” 有救了!

    帝国CMS7.5编辑器上传图片取消宽高的三种方法

    帝国cms如何自动生成缩略图的实现方法

    Windows 12即将到来,将彻底改变人机交互

    帝国CMS 7.5忘记登陆账号密码怎么办?可以phpmyadmin中重置管理员密码

    帝国CMS 7.5 后台编辑器换行,修改回车键br换行为p标签

    Windows 11 版本与 Windows 10比较,新功能一览

    Windows 11激活产品密钥收集及专业版激活方法

    IT头条

    智能手机市场风云:iPhone领跑销量榜,华为缺席引争议

    15:43

    大数据算法和“老师傅”经验叠加 智慧化收储粮食尽显“科技范”

    15:17

    严重缩水!NVIDIA将推中国特供RTX 5090 DD:只剩24GB显存

    00:17

    无线路由大厂 TP-Link突然大裁员:补偿N+3

    02:39

    Meta 千万美金招募AI高级人才

    00:22

    技术热点

    微软已修复windows 7/windows 8.1媒体中心严重漏洞 用户可下载安

    卸载MySQL数据库,用rpm如何实现

    windows 7中使用网上银行或支付宝支付时总是打不开支付页面

    一致性哈希算法原理设计

    MySQL数字类型中的三种常用种类

    如何解决SQL Server中传入select语句in范围参数

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。