<!--START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- this content will be automatically generated across all content areas --><!--END RESERVED FOR FUTURE USE INCLUDE FILES-->
级别: 初级
Paul Zikopoulos (paulz_ibm@msn.com), 数据库专家, IBM
2008 年 2 月 21 日
了解 IBM® DB2® 9.5 for Linux®, UNIX®, and Windows® 的每个版本的详细信息。作者介绍了每个版本的概况、许可方面的考虑因素以及自 DB2 9 以来的更改,描述了客户正在用每个 DB2 版本实现的一些有趣功能。这篇流行的文章已经针对 DB2 9.5 进行了修改,符合当前的情况。
<!--START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --><!--END RESERVED FOR FUTURE USE INCLUDE FILES--> 简介
信息管理软件在企业计算中处于核心地位。计算需要访问大量信息,如 XML、消息队列、文档、流视频以及其他富媒体类型。随需应变的发展使得连续可用性成为必需,并促使公司在集成其业务操作和处理从而将其转换为随需应变模式时,将事务、商业智能、业务性能管理和内容管理应用程序集成在一起。
DB2 信息管理软件组合通过一组丰富的服务奠定了随需应变提供信息所需的基础。可以使用这些服务支持和查询结构化、半结构化和非结构化数据,集成数据,提供实体解析、数据管理、联邦和内容管理,以及丰富的运行时分析功能。这些服务统称为信息即服务(Information as a Service)。
信息管理软件组合的核心是 DB2 9.5 数据服务器,它也是本文的焦点。请注意,本文仅描述运行在分布式和普及平台上的数据服务器系列。关于整个 DB2 产品组合的信息,请参阅 Information Management Software Web 站点或每个产品各自的 Web 站点:DB2 for z/OS ® 或 DB2 for i5/OS ™。
还有另一组 DB2 数据服务器版本,它们组成 DB2 Warehouse 产品集(它们都基于本文讨论的 DB2 数据服务器)。因为这些版本在基本数据服务器之上提供扩展服务,所以本文不讨论它们。
要做出使用 DB2 的决策很容易。但是,DB2 有不同的版本(以及各自的许可选项),它们各自适合于市场中的不同部分。从掌上型电脑(Palmtop)到每秒超过万亿次浮点运算的超级计算机(Teraflop),总有一款 DB2 适合您。
我写这篇文章是为了帮助您决定使用哪种分布式 DB2 版本来为您的企业提供动力。随着时间的推移,服务器版本不断变化,本文已经变成了一篇详细描述当前的许可和产品变更的参考资料。因此,在阅读本文时请一定注意发表日期。
还应该注意,从 DB2 8 到 DB2 9 有许多变更,本文不讨论这些变更,以免本文过分复杂。在某些情况下,您可能拥有在 DB2 9 中不存在的特性或许可证。例如,DB2 8 Express Edition 要求购买一个服务器许可证和许多指定的用户权利,这样才能支持环境中的用户集。在 DB2 9 和更高版本中,在使用用户许可方式时没有服务器许可证。关于版本之间的变更、迁移和更新权利的信息,请与当地的 IBM 销售人员或 IBM 业务伙伴联系。
在与客户交谈时,常常有人问我许多关于高可用性的许可问题,或不同 DB2 版本之间的特性比较。关于这些主题和更多主题的详细信息,我曾经撰写的其他文章可能会有所帮助:
“为高可用性环境中的分布式 DB2 9.5 服务器颁发许可”
“分布式 DB2 9.5 数据服务器对比”(这篇文章用图表对比所有分布式数据服务器版本的特性)
“DB2 和 IBM 的价值单元定价"
回页首
DB2 具有公共的代码库
在选择 DB2 版本来处理您的工作负载时,首先应该理解的是:除了 DB2 Everyplace® 和 Apache Derby(其 SQL API 与 DB2 完全兼容)以外,每个 DB2 版本对于不同的分布式平台都有相同的代码库。DB2 对于 Linux 的支持扩展到了所有的 IBM 服务器上:System i®、System z®、System x® 和 System p®,所有这些平台上的 DB2 也都是分布式版本。例如,DB2 for Linux on System z 与基于 Intel 或 AMD 的工作站上的 DB2 具有相同的代码库和许可方式。这意味着,尽管 DB2 for Linux on System z 服务器驻留在 System z 服务器上,但是访问数据并不需要 DB2 Connect。(请仔细理解这句话 —— 如果连接 System z 服务器上的 DB2 for z/OS 数据服务器,就需要 DB2 Connect;这里的差异在于 DB2 for Linux on a System z Integrated Facility for Linux(IFL)是一个分布式 DB2 版本。)
公共的代码库提供了可移植性,并确保如果需要扩展 DB2 解决方案,就可以无缝地完成,而无需考虑成本、平台或迁移工作量;因为 DB2 系列中的 SQL API 大约 95% 是公共的,所以在 DB2 系列成员之间迁移也很容易。
除了 SQL API 之外,还有其他兼容性特性。例如,有一个公共的 Web 服务框架,它允许通过鼠标单击将业务逻辑组合进面向服务体系结构(SOA)框架中。实际上,这个框架(称为 IBM Data Web Services)适用于所有 IBM 数据服务器,包括 Informix!
尽管听起来不可思议,但是许多 IBM 数据服务器特性在每个 DB2 版本上都是相同的。例如,所有 IBM 数据服务器都用一个公共的 API 处理 SQL。例如,DB2 for z/OS 和 DB2 for Windows 的 JDBC 驱动程序具有相同的代码。还有一个公共的客户机:从 DB2 9.5 开始,如果要连接 DB2 for z/OS、DB2 for AIX 或 Informix,那么只需安装一个客户机。另外,应用程序开发和管理工具(比如 Visual Studio 集成或 IBM Data Studio)也对整个系列有效。在所有平台上都启用了 pureQuery。简单地说,在进行应用程序开发、部署、管理等活动时,您的技能可以在整个 IBM DB2 系列上重用(某些情况下也包括 Informix)。
图 1 展示了各种受支持的分布式平台的 DB2 9.5 体系结构视图。
如果决定更改关于硬件体系结构(例如,从基于 Intel 的体系结构更改为 POWER6 体系结构)、操作系统(比如从 Windows® 迁移到 Linux™)或编程体系结构(比如从 .NET 更改为 Java,或反过来)的策略方向,就可以依赖于 DB2 适合各种平台这一特点。很简单,您可以自由地做出选择,而 DB2 确实是世界上惟一真正允许您根据环境定制信息平台的广度和深度的数据服务器。
DB2 Everyplace 版本……小设备也有大威力
移动计算的真正威力并不在于设备本身,而在于从其他数据源获取数据的能力。DB2 Everyplace(DB2e) 将 DB2 的能力赋予移动设备,利用移动设备的能力与其他系统同步数据,将企业数据按原样传输到移动员工的口袋里,并向员工提供就地更新企业数据的能力(甚至是在偶尔连接的环境中)。
DB2e 不仅仅只是一个移动计算基础结构。它是一个完整的开发环境,包含构建、部署和支持功能强大的电子商务应用程序所需的工具。DB2e 提供一个内存占用极少的引擎(大约 350 KB),其中包含完整的安全性功能,如表级和连接级(包括 SSL)加密,以及能够带来高性能的高级索引技术。它可以在多种手持设备上良好地运行,支持 Palm OS、Windows Mobile for Pocket PC、传统的 Windows 桌面平台、Symbian、QNX Neutrino 和各种 Linux 发行版(包括 BlueCat 等嵌入式发行版)等等。
用于开发 DB2e 应用程序的 SQL API 是构建 DB2 应用程序所使用的 SQL API 的子集。这意味着企业应用程序通常可以极其容易地进行扩展以包含移动设备。DB2e 十分易于使用,用户不需要任何数据库管理技能,因为它是百分之百自我管理的。DB2e 对于开发人员而言也极其灵活,它支持多种可编程 API 接口,比如 ODBC、JDBC、.NET、DB2 CLI 等等。
对于开发 DB2e 应用程序来说,好消息是数据库引擎是独立于平台的。所以能够无缝地将 Pocket PC 设备上的 DB2e 数据库迁移到 Symbian 智能电话或支持的其他设备上。这个特性(加上对应用程序开发的丰富支持)让开发人员可以在所有平台上快速创建、部署和支持应用程序。
DB2e 可以作为完全同步的环境或作为独立的嵌入式数据库来发放许可证。DB2e 提供了两个版本:DB2 Everyplace Database Edition(DB2e Database)和 DB2 Everyplace Enterprise Edition(DB2e Enterprise)。
DB2e Database 没有用来将数据扩展或同步到后端企业服务器的同步中间件,不过它提供了基于命令行的导入和导出实用程序。DB2e Database 主要用于需要嵌入式数据库或本地关系存储设施的应用程序,数据库通过某种应用程序暴露给最终用户(他们绝不会真正看到数据库),而且由于设备的限制,要求内存占用量很小。
DB2e Enterprise 许可证为客户提供不限数量的 DB2e 数据库引擎,可将这些引擎部署在他们公司的移动设备上,并支持这些设备通过附带的 DB2 Everyplace Synchronization Server(DB2e Sync Server)进行数据同步。DB2e Sync Server 处理 DB2e 与 Apache Derby 数据服务器和兼容 JDBC 的后端数据服务器(即所有 DB2 版本、Oracle、Informix、SQL Server 等等)之间的数据、配置文件和管理同步。除此之外,还有一个特殊的 DB2 系列同步适配器(在分布式 DB2 版本中是免费的),它使用 SQL 复制技术。DB2e Sync Server 可以支持的并发同步数目取决于服务器的硬件配置、相关的工作负载以及数据变更率。如果需要进行扩展以处理极其大量的并发同步,可以安装任意一种 Java 应用服务器(比如 IBM WebSphere Application Server)。除此之外,可以通过 DB2e Sync Server 群配置支持更高的可伸缩性和可用性,允许把许多 DB2e Sync Server 配置成集群,提供负载平衡和高可用性服务。
Apache Derby
在 Linux World 2004 上,IBM 宣布将 IBM Cloudscape 代码捐献给 Apache Software Foundation,作为 Apache Derby 数据库。这个开放源码的数据库在 2 MB 的 .JAR 文件中提供了大量特性,可以在应用程序中免费使用;并且可以免费变更用途用于盈利。Apache Derby SQL API 与 DB2 for Linux, UNIX, and Windows 数据服务器完全兼容,所以当需要功能更丰富的数据库管理系统时,可以进行无缝的迁移。
pureXML for DB2 Express: 它允许在 DB2 Express 数据库中创建 pureXML 列和使用相关的 XML 服务,比如 XML 模式检验和注册服务、基于路径的索引服务、XQuery 服务等。注意,DB2 Personal、DB2 Express-C 和 DB2 Express-C FTL 免费提供这个特性。 尽管 DB2 XML Extender 的效率和功能不及 DB2 9 中的 pureXML 服务,但是 DB2 9.5 中仍然提供它,可以使用它对 XML 进行持久化。但是您应该知道,XML Extender 存储 XML 的方式与其他关系数据库产品相同:即把 XML 数据分解成关系格式,或者将整个 XML 文档放进一个大对象中。无论您使用哪个厂商的数据库,在使用他们的技术对 XML 数据进行持久化时,都需要在性能、灵活性等方面进行权衡。
DB2 9.5 中的 pureXML 特性提供的服务不会在存储 XML 数据时损害灵活性(灵活性是设计 XML 的目的)和性能(性能是用数据服务器存储 XML 的原因之一)。对于几乎所有基于 XML 的应用程序,强烈建议使用这个特性。
Homogeneous Federation for DB2 Express :它允许跨 DB2 系列成员创建别名。这样,应用程序就能够使用驻留在不同平台上的 DB2 表,而不用考虑它们的位置。例如,可以使用这个特性对驻留在 DB2 for i5/OS 数据库中的数据和 DB2 for Linux on System z 中的数据执行联结。如果希望对非 IBM 数据源执行联邦操作,或者希望使用基于队列的复制,那么需要购买单独的 IBM Information Server 套件 中的产品。