对于所有的数据库而言,除了记录正确的处理结果之外,它们都面临着四方面的挑战:如何提高处理速度,数据可用性、数据安全性和数据集可扩性,也就是说,如何使当前的数据库具有这四方面的可伸缩性,使客户能同时得到更高的处理速度、更高的数据可用性、更高的数据安全性和更大的数据集,而不是提升了其中的部分指标,却损坏了其余的指标或者其余的指标没有改进。随着IT应用的深入和有线,无线网络的快速增长,联机事务处理业务对以上四方面提出了更高的要求。
将多个数据库联在一起组成数据库集群来达到上述目标应该说是一个很自然的想法。理想的数据库集群应该可以做到以下几点:
◆ 在需要更高数据库处理速度的时候,我们只需简单增加数据库服务器就可以了。这样可以大大减小硬件投资的风险,而且大大提高现有服务的质量。
◆ 在任何时刻需要有多个随时可用的实时同步数据服务。为了防灾,最好有多个异地的同步数据服务。这不光会大大增加数据可用性,还会有意想不到的更高数据库处理速度的效益。
◆ 除了密码保护之外,我们最好能控制企业内部对数据库的非法访问。
◆ 数据集的可扩性可能是最简单的要求了。但是,用增加数据库服务器的办法来扩大数据集对数据可用性会产生负面影响。如果没有数据冗余,那么每增加一台服务器,整个系统的可用性就会成倍地降低。最好的结果是我们能任意增大数据集而没有对可用性的负面影响。
上述最后一条揭示了我们将面临的技术困难--除了异常简单的应用之外,有关数据库集群的技术都是非常困难和复杂的。更具挑战性的是,实际的应用要求上述几方面的指标能同时提升,而不是某一指标提升了,另外的指标却下降了。然而,所有的技术都是有副作用的,这就是当前数据库集群技术面临的重大困难。
客观地比较各种数据库技术是很困难的,比较各种数据库集群技术可见会更困难。本文试图对当前主要的数据库集群用到的具体技术进行分析,目的是评价每种技术的优缺点,并且按它们各自的设计目的和使用效益评分, 最后得出每种数据库集群的一个综合评价值。从而建立一个客观评价数据库集群技术的评价体系。 我们希望能用这个评价标准来评价现有的和今后将出现的数据库集群技术, 并且理清一些很容易混淆的概念。
为了使得这个研究更具实用价值, 我们还包括了两项和具体技术没有直接关系的评价:集群管理难易度和应用的透明度。
评分标准:每一项技术都用从0(不支持)分到1(支持最好)分给出评分,减分是按四分法来做, 所有的效益都大致分为四个梯度,按大约的比例减分。