欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

开源数据库迁移之前需要做哪些功课

程序员文章站 2022-05-10 17:33:49
...

当了解开源RDBMS关系型数据库管理系统的优势之后,你安装了MySQL数据库来为Web应用提供注册、订阅和 电子商务 服务。单单是数据库可靠性远不足以满足你的业务需

当了解开源RDBMS关系型数据库管理系统的优势之后,你安装了MySQL数据库来为Web应用提供注册、订阅和电子商务服务。单单是数据库可靠性远不足以满足你的业务需求,最好要能访问源代码而且产品是免费的。

  现在你开始评估未来的增长和项目业务需求,犹豫是否需要将数据迁移到更可靠的商业软件系统上去,例如SQL Server或Oracle。

  然而,商品软件产品不是免费的,除非你使用Express免费版本,现在许多软件厂商都能提供这种免费版本。例如,你可以下载SQL Server Express , Oracle Database XE 或 DB2 Express-C,这些软件可以免费使用。他们并不开源,但你不用付费。商业产品的免费版本不如付费版本那么健壮,也没有那么多的功能,但是他们却有开源软件所没有的功能。同时,免费的商业产品在某些方面不能与他们的开源软件的相应产品竞争。在考虑转换之前,这里有几个重要的问题要考虑 。

  你要考虑使用什么环境?常常是当前数据库环境决定你能对系统做什么改变。例如,SQL Server只能运行在Windows环境下;而你可能用的是Linux系统。但是,假如你想要将数据库安全与Windows安全集成,假如MySQL不支持Windows模型,转换到SQL Server就是你最好的解决方案了。

  有许多这样的因素需要考虑。免费的商业软件产品在内存、数据库大小和能使用的CPU等方面有限制。例如,Oracle Database XE和SQL Server Express都有4G数据库大小的限制。也有其他因素的限制,如是否支持某种应用程序接口,可扩展性需求或可用性需求。

  你的RDBMS应该具有什么功能?当决定是否放弃从开源RDBMS转向商业软件时,首先需要熟悉不同数据库系统的功能。大多数RDBMS的内核都很相似,无论是开源产品还是免费的商业软件版本。它们都遵循美国国家标准协会ANSI的SQL标准,支持ACID事务(原子性,一致性,独立性和持久性),提供安全性,包括存储过程和触发器,支持复制和分区,提供索引以及许多其他功能。

  其实并非所有的产品都是一样的。例如SQL Server Express有很多功能都是MySQL所不具备的,SQL Server有 Management Studio、配置管理器、报表服务器、在线备份和自动调优等功能。而MySQL支持不同的存储引擎,提供分区选项,更容易安装。选择MySQL,看重的是它能运行在任何操作系统上,是开源的,而且数据库的大小只受主机操作系统文件大小的限制。弄清楚哪种产品支持哪种功能,并决定这些功能中哪些是你必须要的,这才是关键。

  实施需要做什么?这可能是在决定是否迁移到商业软件的决策中最重要的问题。免费的商业产品提供了开源软件所没有的功能,这是迁移到更健壮商业软件版本比较平滑的迁移路径。例如,你的组织可能想在明年开始实施扩展的商务智能分析。为此,你想要有一个系统,这个系统能处理必要的数据抽取、转换和加载(ETL)操作,支持日益增长的数据仓库,提供在线分析处理并提供扩展的报表分析功能。

  无疑你能用不同的开源软件产品将许多这些功能集成起来。ETL产品如Pentaho Data Integration和Talend Open Studio都是强大的开源工具,可以用来迁移数据。然而,像SQL Server这样的产品,不仅包括数据库引擎,也有它自己的分析服务、报表服务和集成服务,提供可伸缩的解决方案,能做长期计划和后续实施无缝的过程。所以SQL Server Express可能是不错的选择。

  从哪儿开始?开源RDBMS的迁移没有一个简单的答案。每个系统都有它自己的优缺点,免费的商业软件并不一定就便宜。你必须要考虑到计划和实施不同组件所需要的时间,了解并发现对这些组件的支持,集成不同的战略和系统。在某些情况下,解决方案可能是清晰的。如果你买了Microsoft的产品,正在使用Microsoft的工具,运行.net应用 ,SQL Server可能就是最好的解决方案。但是,如果你运行的是Linux服务器,支持的是PHP应用,你可能发现开源软件如PostgreSQL更能满足你目前的需求。然而,即使是这种情况,也不那么容易。你必须要考虑产品的限制和功能,同时还要考虑未来的需求。只有这样你才能做出正确的决策。