数数据库扩展器ICX 3.1部署情形说明(通向真正数据库高可用性、高可靠性、高性能之路)

    美国并行计算机公司
    2005年10月7日星期五

概述
    ICX是个全新的产品,当今市场上没有同类竞争产品,当前的最新版本是ICX 3.1。针对不同的客户应用需求,ICX可以有不同的部署方案,因而具有其他任何方案都不具备的独特功能和优势。
在我们分别详细讨论ICX的各种部署方案及其实现的功能特点之前,我们先讨论一下ICX的基本配置及其功能特点:
注:1.本文下面说的扩展器特指ICX数据库扩展器
    2.本文下面说的数据库修改操作包括插入、修改和删除等数据操作

ICX的典型部署是同时驱动多个同步一致的数据库服务器

图1 带自动负载均衡和复制功能的最典型的ICX部署
    上图显示了ICX的一个最典型的部署,同时驱动两个或多个数据库服务器的数据库集群(根据客户的实际需要,一般挂接16个数据库已经足够了)。具有下列特点:
    高性能:整个系统的高性能是通过下面两方面取得的:
    1)对数据库的查询访问将在后面的多台数据库之间动态负载平衡,显著提高整个系统的运行性能。针对不同的应用类型,性能提高在50%到300%不等。
    2)由于ICX保证了各数据库的实时一致性,因此原有的数据库复制就没有必要了,此举释放了原有复制技术带来的性能负载,也就提高了系统的性能。
    高可靠性:如果我们假设每台数据库出错的概率是P,那么整个系统失败的可能性就是P的N次方,这里的N是指ICX后面连接的数据库服务器数量。这使得采用低端服务器构建的数据库集群的可靠性可以和现有的主机系统相媲美,甚至具有更好的可靠性。同时,真正消除了单点错误源,一旦主ICX出现错误,备份ICX将自动接管,从而保证整个系统的服务不中断。
    高可用性:因为是真正的冗余设计,因此提供了整个系统的高可用性。
    数据集的可扩充性:这特点是ICX独有的,同一时刻,多个同步一致的数据集,大大提高了整个系统的数据安全性,也使得现有的数据库复制技术没有了必要。
     从上图可以看出,整个系统具有良好的可伸缩性,随着数据库服务器数量的增加,上述四方面的参数指标将得到不同程度的提高。这种可伸缩性是当前任何别的数据库系统都无法实现的。
除了上面讲述的基本配置外,针对不同的客户需求,ICX还有下列配置情形:
配置情形二:专用的负载均衡器
    对于那些统计报表和数据挖掘类的应用,用户可以通过将数据操作分成复制和只读两种类型去取得更快的处理速度。图 2示意了这样一种配置。

图2. ICX同步复制器和负载均衡器分离的配置示意图
需要注意的是:这种配置需要额外的ODBC/JDBC连接,对应用程序的只读查询需要重新定向。
    如果用户能在应用程序的源代码稍作改动,就可以取的更高的处理速度。使用图2和ICX内建的控制机制,除了自动过滤只读操作来进行负载均衡之外,用户还能指定更多的只读操作来负载均衡。
配置情形三:数据挖掘集群
    由于数据库挖掘类的应用极大地消耗数据库机器的性能,因此当前通常的做法是将OLTP和数据挖掘应用分开,但是在进行数据挖掘时候,如何得到一份近实时的数据集呢?下图展示了ICX的逻辑解决思路:

图3. 采用ICX的Async技术进行数据挖掘方案示意图
这里应用了ICX的Async技术,此种技术和普通的Log Shipping技术相比,有以下的优势:
    配置和队列的管理简单,几乎是全自动化的。在源扩展器和目标扩展器之间是异步的,同样存在队列管理的问题,但是采用ICX特有的PRT(Power Resync Tool)技术,队列的重建是全自动进行的,因此管理和配置非常简单。
    无论在源扩展器还是在目标扩展器端,皆可以进行同步复制和负载平衡,同时提供数据库服务器的可靠性和运行性能。
配置情形四:远程异地数据库同步
    当前,为了建立异地容灾备份数据库,通常是采用数据远程复制的办法,而ICX采用了完全不同的解决办法,具有自己独特的优势。对于远程异地数据库的同步,除了“配置情形一”可以使用外,另外ICX还可以有两种配置情形:
    情形一:各ICX网关分别接收对本地和远程数据库的修改操作。例如北京本地的扩展器接收既修改北京数据库,又同步修改上海远程数据库的修改操作,以此保持北京和上海两地数据的并发实时一致性。对于上海本地的扩展器也是同样的情形。此种情形要求从ICX网关到远程数据库的网络时延在400MS之内。如下图所示:

图4. ICX实现远程异地数据库同步示意图
    情形二:各ICX网关只接收来自其本地的数据库请求操作,例如北京本地的网关只接收来自北京本地的数据库请求操作,而上海本地的网关也只接收来自上海本地的数据库请求操作。北京的ICX网关和上海的网关分别负责自己独立的数据库,或者两地的数据库请求操作虽然在同一个数据库下,但是彼此没有共享冲突操作。同样地,此种情形要求从ICX网关到远程数据库的网络时延在400MS之内的。如下图所示:

图5. ICX实现远程数据集可用性的示意图
    显然,ICX容易实现多个远程异地同步数据库。情形一与情形二相比,开销要大一些,这是因为情形一多了一层通讯,因此情形一比较适合于数据库修改操作不频繁的应用,例如股票交易系统等。同时值得指出的是,情形一的实现需要配合ICX提供的嵌入式控制语句,以实现数据库表格和数据库对象之间的同步问题。
配置情形五:阶梯形异地数据库同步
    许多大型组织的结构往往是层次化的,例如大型的连锁集团,政府部门等。它们具有两层或多层结构,对于处于每一层的机构而言,它往往有自己的本地数据和安全规则,同时有共享数据需要上传下达,针对此种需求,ICX有下图所示的解决办法:

图6. 采用ICX的Async技术进行数据挖掘方案示意图
    因为ICX实现了在同一台扩展器上实现多个实例,因此可以方便地实现数据在上传下达过程中的实时同步。如上图所示,对应于广东省和浙江省需要向中央上传的数据库内容,通过三地的ICX扩展器,达到实时同步;同样地,对应于中央要下发给各省的数据库内容,也可以通过三地同样的ICX扩展器,但是由不同的扩展器实例,达到三地数据库内容的实时同步。同时,每个地方,都可以按照要求,做到同步复制和负载平衡,也可以进行配置情形二所说的数据挖掘应用。
配置情形六:ICX扩展器的集中
    前在IT领域,无论是硬件还是软件,都在倡导整合。ICX的多实例技术,完全适应了此种潮流,可以将多个同步复制器和负载平衡器运行于同一台物理的机器上,同时实现运行不同种类业务的多个数据库的同步复制和负载均衡,达到降低硬件成本,集中管理,也就达到降低管理成本的目的。如下图所示:

图7. 采用ICX的Async技术进行数据挖掘方案示意图