摘要:高可用性是重要数据库应用程序的关键需求。IBM DB2 9.5 提供了很多特性来满足这一需求。如果您对分布式平台上的 DB2 还不是很了解,或者已经使用过一阵子,您可能会发现这组处理可用性的特性令人困惑。本文的目的就是总结这些特性,并指导您理解如何使用 DB2 技术构建高度可用的数据库系统。此外,发现每种解决方案的成本和优点。
高可用性是重要数据库应用程序的关键需求。IBM DB29.5 提供了很多特性来满足这一需求。如果您对分布式平台上的 DB2还不是很了解,或者已经使用过一阵子,您可能会发现这组处理可用性的特性令人困惑。什么时候使用哪个特性,当使用特性时,您希望完成什么目标?
在开始之前,我们先来定义术语高可用性(HA)的意义。HA 是指要求在依赖性应用程序需要数据时能够提供数据。其目的是消除或尽量避免停机。与 HA 相关的一个术语是灾难恢复(Disaster Recovery,DR),DR 与 HA 的不同之处在于,它侧重于保护数据,防止因灾难性故障导致数据丢失。本文只关注 HA。
术语和客户机/服务器数据库架构
术语和客户机/服务器数据库架构
我们首先讨论一些术语和概念,这对理解高可用性十分重要。
一个数据库解决方案包括三个部分的软件:
·用户应用程序
·客户机软件
·数据库引擎
除了软件,要得到一个有效的解决方案,还必须拥有一些其他资源:
·服务器硬件
·网络连接
·磁盘存储
·操作系统
当设计一个 HA 解决方案时,必须考虑所有这些方面。仅仅使数据库引擎高度可用未必就能创建出一个 HA 解决方案。HA 解决方案的设计并不完全是一个技术问题,它还必须考虑其他一些因素,例如解决方案的成本、技能需求以及管理需求。
数据库应用程序是基于客户机/服务器的。应用程序能否产生一致的结果,取决于数据库软件的完整性。虽然这一点是显而易见的,但是它在选择和设计解决方案时十分重要。
SQL 事务可分为两种类型:读和写。读事务是不需要插入、更新或删除活动的选择语句。而写事务则要更改至少一个数据库。读事务需要数据的一致视图 —— 即当同时提交两个读事务时,如果它们选择相同的数据范围,那么应该产生一致的结果集。写事务要求提交的数据库更改被持久化,即使出现故障时也是如此。业务需求会影响到什么 HA 解决方案是可用的或者是最适合的。通常,HA 解决方案的设计由两个因素驱动,正常运行时间(uptime)需求和事务一致性。如果业务要求更高的可用性,并且读一致性不是很重要,那么选择异步可能是更经济的方法。另一方面,如果事务一致性是关键需求,那么则需要选择更加同步的解决方案。如果事务一致性和可用性都是必需的,那么将进一步缩小可选择的范围。