本文适用于 ibm® db2® universal database™ for linux.unix® 与 windows® 【扩展信息:JavaMail API 实施业务逻辑】
简介
高可用性与灾难恢复是关键数据库应用程序的重要需求.ibm db2 通用数据库(db2)提供了许多特性来满足这些需求.如果您还不熟悉分布式平台上的 db2,或者即使您已用了一段时间,您也许仍会觉得处理可用性与恢复的许多特性令人感到迷惑.您何时使用哪一种特性,当您使用它时,您可以希望完成什么?本文旨在概述这些特性,并指导您理解如何使用 db2 技术来构建高度可用与可恢复的数据库系统.此外,每种解决方案都有其成本以及独有的优点,因此我们将讨论它们的优缺点.
在开始之前,让我们先研究术语高可用性(high availability,ha)与灾难恢复(disaster recovery,dr).在运用 ha 与 dr 的技术中,它们经常有相交的地方,但它们有两个不同的用途.
高可用性是这样一种需求:每当需要时,数据就可用于从属应用程序.其目的是消除或最小化停机时间. 灾难恢复防止由于毁灭性的故障而导致数据丢失.这类故障意味着由于不可恢复的情况而丢失数据.术语与客户机/服务器数据库体系结构
我们将首先讨论一些术语与概念,当讨论高可用性与灾难恢复时,应该要理解这些术语与概念.在数据库体系结构讨论中经常会用到术语 群集(cluster).有两种类型的 db2 数据库群集: 高可用性与 高可伸缩性(high scalability).虽然在一个解决方案中可以结合这两种群集,但应该将它们看作是互斥的实体.高可伸缩性群集(也称作数据库分区)结合了多台服务器的聚集能力以产生高性能解决方案.该技术通常用于构建数据仓库或大型事务系统,而在这样的数据仓库或系统中,单个服务器是无法实现性能目标的.高可用性群集产生一个能最大化数据库正常运行时间的系统.在本文中,术语“群集”仅指高可用性群集.
ha 数据库解决方案有三个部分:
用户应用程序 客户机软件 数据库引擎当设计 ha 解决方案时,应该考虑所有这三个方面.仅使数据库引擎成为高度可用并不一定能创建出 ha 解决方案.本文的重点是数据库引擎正常运行时间,但您应该将这一问题看作只是整体解决方案的一部分.
数据库应用程序是基于客户机/服务器的.应用程序依靠数据库软件的完整性来产生一致的结果.虽然这看起来似乎相当明显,但当选择与设计解决方案时理解如何实现这一点非常重要.
当应用程序提交 sql 事务时,在可以假设事务完成之前它必须接收返回码.应用程序并不与数据库引擎直接交互.事务经由客户机软件传递到引擎.由客户机软件将响应返回给应用程序.正的返回码表示成功的情况,而负的返回码表示失败.应用程序如何处理这些情况对于整体 ha 解决方案很重要.通过包含返回码逻辑,尤其是关于事务失败的,应用程序可以使 ha 解决方案对于最终用户显得更加天衣无缝.
数据库引擎通过实现事务日志来确保完整性,事务日志存储了所有插入.更新与删除活动.事务日志确保了数据库更改只在应用程序发出提交语句后接收到正的返回码时才算完成.事务日志是 ha 与 dr 解决方案的基础部分.
... 下一页