X
首页 Cheetah技术专栏 Cheetah 2:总是开启
Cheetah 2:总是开启

继去年引人注目的发布之后,Informix Dynamic Server 11.5 将进一步发挥 IDS 的优势,在可用性和易用性方面提供简单而有效的新特性。

在 2007 年年中,IBM 在数据服务器市场上推出了一种非常出色的产品:Informix Dynamic Server(IDS)11(代码号 “Cheetah”)。这个版本进一步增强了 IDS 的易用性,在它原有的自主系统管理功能中又增加了许多特性,包括一个灵活且可扩展的系统监视和管理工具、一个用来增强系统安全性的全新的命令行管理 API 以及用于增强应用程序功能并降低复杂性的绑定的 DataBlades。

按照我的观点,IDS 11 中最出色的东西是在 High-availability Data Replication(HDR)技术中增加的功能。这种新功能称为 Multi-instance Active Cluster for High-availability(MACH-11),它允许使用多个辅助实例类型来保护 IDS 数据,并针对任何类型的停机提供不中断的数据服务。其操作的简单性和设置的简便性几乎是数据服务器市场上前所未见的。所以,使用 IBM Informix 的人总喜欢说,“它非常奏效” 。

在操作和管理方面,IDS 11.5 版本(将在今年年中推出)将为数据服务器提供几个引人注目的改进。MACH-11 技术中增加的新功能会增强数据保护和业务连续性,从而显著增强可用性和业务价值。IDS 11.5 还为 Apple Mac OS X 操作系统提供企业级数据服务。

在本文中,我将解释 IDS 11.5 中的一些重要改进,正是这些改进使 IDS 11.5 能够超越其他数据服务器。





MACH-11 集群中的主动-主动支持

在近几年,IDS 一直在数据复制和高可用性技术方面保持无可争辩的领先地位。IDS 11 中的技术进一步巩固了它的优势。当 IBM 发布 IDS 11 时,我们讨论了如何构建一个 “可用性构造”,可以围绕数据服务建立这样的构造,从而提供不中断的业务连续性。Informix Dynamic Server 使我们能够灵活地实现业务所需的可用性结构,而不必局限于单一选项。

在当时,MACH-11 集群中额外的实例类型都是只读的。对于尝试执行插入、更新或删除操作的应用程序,必须进行修改,让它们不连接 MACH-11 实例而是连接主实例,或者以分布式事务的形式执行操作。尽管分布式事务可以有效工作,但是导致这些类型的修改需要花费更多时间,还要进行严格测试,以确保正确地修改所有地方,避免应用程序故障。客户要求能够在集群中的任何实例上执行任何 SQL 操作,包括插入、更新和删除 SQL 操作,而不希望受到实例类型的限制。

Informix Dynamic Server 11.5 将在 MACH-11 集群中提供这种主动-主动技术(也就是说,可以在任何地方执行更新)。

请看图 1 和图 2。


图 1. 改变 MACH-11 实例类型的状态为可更新
改变 MACH-11 实例类型的状态为可更新

在图 1 中,可以看到每个 MACH-11 实例类型的状态行都从只读变成了可更新。这个特性使我们能够执行与图 2 相似的 DML 操作,并将这个操作成功地应用到集群中的所有实例拷贝。


图 2. 集群中的所有实例拷贝
集群中的所有实例拷贝

图 2 显示,在前台窗口中,在连接一个 Remote Standby Server(RSS)实例的情况下,插入语句成功地执行了。在后台窗口中,连接 Shared Disk Secondary(SDS)实例之一并从表中选择一些行,这证明已经在整个集群中执行了数据复制。

对 MACH-11 的改进包括应用程序连接处理方面的一个新概念以及一个新的集群管理代理。图 3说明新的连接概念 “实例云(instance cloud)”。


图 3. 新的连接概念“实例云(instance cloud)”
新的连接概念“实例云(instance cloud)”

在以前,所有客户机连接都是点到点的,没有任何变化。在这个新模型中,MACH-11 集群中的实例被组织成组(或者说 “云”)。选择哪些实例包含在云中的条件仅仅依赖于业务需要和需求。在这个示例中,企业决定创建三个云。一个云支持的应用程序主要面向 OLTP 负载,具有比较高的写/读比率。一个 “编目” 云支持基于 Web 的编目操作,主要负载是只读的,但是也有少量数据修改操作。第三个云支持内部报告和其他操作。

客户机并不试图连接某个实例,而是连接适当的云,然后客户机直接连接云中的某个实例,选择的这个实例具有支持客户机所需的可用资源。这种方法对于客户机和总体系统性能都有重大影响,因为工作负载会在所有可用实例之间平均分配。

必须了解的要点是:无论客户机连接哪个云(甚至哪个实例),DML 操作可以在任何云中的任何实例上执行,每个操作的结果会复制到整个集群中的所有地方。这就是主动-主动技术的效果。

但是,客户机如何能够知道哪个实例不太忙,最适合支持它的工作负载?IDS 11.5 通过免费的 Client Software Development Kit(CSDK)中的 ODBC 连接驱动程序引入了一个新的代理。图 4说明了这个代理(Online Connection Manager and Server Monitor,ONCMSM)提供的一些功能。


图 4. 新的连接代理 ONCMSM
新的连接代理 ONCMSM

当一个应用程序希望连接一个实例云时,本地连接驱动程序查询 ONCMSM,询问它应该直接连接云中的哪个实例。代理根据它的统计信息做出响应,然后客户机建立连接,就像是选择的实例已经硬编码在客户机设置中一样。ONCMSM 并不直接参与客户机和实例之间的通信,而在其他高可用性解决方案中代理常常参与通信。

这个新功能非常简单,而且开销很低。许多其他厂商都要求客户购买额外硬件作为专用的复制服务器,而复制服务器可能会成为性能瓶颈,如果复制服务器发生故障,还会损害系统的完整性。您还必须购买和安装昂贵的高速网络基础结构。最后,当在这样的环境中增加数据服务器时,吞吐量会显著下降。所有这些需求都需要大量投资,严重影响业务,因此形成双输的局面。

通过使用 IDS 解决方案,访问 IDS 实例的任何计算机都可以通过一般的网络基础结构提供 ONCMSM 服务。ONCMSM 仅仅是连接驱动程序中的一个附加元素。因此可以免费使用它。可以在客户机、应用/Web 服务器以及驻留 IDS 实例的大型物理服务器上配置这个代理。可以在数据处理环境中不同的位置配置多个 ONCMSM 代理,它们将相互识别和协作,从而向集群和连接它的任何客户机提供不中断的服务。而且,与 IDS 的其他部分一样,它总是会正常工作。

除了管理客户机连接之外,如果集群中的一个或多个实例发生故障,ONCMSM 还会自动管理集群故障转移。在 IDS 11 中,这是一个手工过程。







Apple Mac OS X 支持

虽然 Informix 和 Apple 用户社区形成的时间不同,但是它们非常相似。它们关注的技术都是各自领域中最出色的,其效果比市场上的任何其他技术都好。因此,IDS 很自然应该能够在 Mac OS X 操作系统上运行。

随着 IDS 11.5 的出现,使用 Mac 的部门和企业终于有了一种完整的企业级数据服务器。对于需要 Apple 的企业部门,IDS 是最适合的数据库系统。这些部门的环境中常常包含大量媒体数据,而 IDS 具有对象-关系性质,能够存储和操作任何类型的数据对象,不仅仅是字符和数字,因此很适合这些部门。

IDS 的 Mac OS X 版本并不是一个简化版。它包含其他 IDS 版本中的几乎所有特性,使 Mac 用户能够部署和使用 Enterprise Replication、MACH-11、DataBlades、用户定义例程(UDR)、用户定义类型(UDT)等高级功能。在不远的将来就能够看到 IDS 技术在 Mac 平台上应用的效果。







安装程序和 $ONCONFIG 的改进

在安装过程中,可以要求安装程序替您创建和启动实例。您不需要使用常见的配置参数,而是输入关于驻留 IDS 环境的物理服务器的信息以及预期的数据处理工作负载。安装程序会根据您的输入为实例创建和保存一组配置参数,这会提供与经过调优的实例相似的效果。

在 IDS 11.5 中,IBM 全面地重组和改进了实例配置文件 $ONCONFIG。与特定功能领域相关的所有参数都被集中在一个位置,而不是像以前版本中那样分散在文件中的不同位置。在每个部分的前面有一个注释块,其中包含对每个参数的说明,在许多情况下还包括建议的参数设置。因此,更容易了解参数的相互影响,在调优实例功能的特定部分时有助于确保修改所需的所有参数。建议的参数设置可以帮助 IDS 经验有限的管理员在设置实例时做出更好的决策。





 


OpenAdmin Tool for IDS

在 IDS 11.5 中,OpenAdmin Tool(OAT) for IDS 增加了新功能,包括在企业中支持 MACH-11 集群管理的新特性,包括新的连接和服务器管理器代理的所有元素。可以通过 OAT 动态地创建 IDS 实例和管理故障转移操作。

这个 OAT 版本中的其他新特性包括实例磁盘存储管理改进、实例配置和调优支持、虚拟处理器管理、改进的柱状图和性能统计数据收集等等。






IDS 11.5 SQL 改进

IDS 11.5 包含许多 SQL 改进。首先,[not] null SQL 比较操作符现在可以评估表达式是否由于测试的数据集包含至少一个 null 值而失败。在以前,只能评估具有数据类型的内容。

在 IDS 11.5 中,可以在用 Informix Stored Procedure Language 编写的 UDR 中使用 execute immediate SQL 关键字来执行 prepare、execute 和 free SQL 处理操作,而不需要用单独的 SPL 语句调用每个操作。

以前的 IDS 版本支持 int8 和 serial8 数据类型;IDS 11.5 引入了 bigint 和 bigserial 数据类型,这些数据类型符合 ANSI SQL 标准。与原来的 IDS 数据类型一样,这些新类型的长度都是 8 字节,但是由于使用了本机 64 位实现,性能得到了提高。







请亲自尝试 IDS 11.5

本文简要介绍了 Informix Dynamic Server 11.5,希望能够帮助您使用主动-主动高可用性等最新特性。