Sun Java System Application Server Enterprise Edition 8.1 2005Q2 高可用性管理指南

HADB 服务器体系结构

高可用性指无论出现由于升级而引起的预期故障,还是出现由于硬件或软件故障所导致的意外故障时,系统都具有可用性。HADB 基于简单数据模型和冗余、可伸缩和高性能技术。在高性能企业应用程序服务器环境中,HADB 为实现各种类型的会话状态持久性提供了理想的平台。

下图显示了具有四个活动节点和两个备用节点的数据库的体系结构。节点 0 和 1 是镜像节点对,节点 2 和 3 也是镜像节点对。

图 2–1 HADB 体系结构

HADB 体系结构

HADB 通过对数据进行分段和复制来实现数据的高可用性。将数据库中所有的表进行分区,以创建大小大致相同的子集(称之为段)。分段基于散列功能,该功能在数据库节点之间对数据进行平均分布。每个段存储两次,一次在数据库中,另一次在镜像节点中。这确保数据具有容错和快速恢复功能。此外,如果一个节点出现故障或关闭,则备用节点可以接管,直至发生故障的节点再次处于活动状态。

HADB 节点被组织为两个数据冗余单元 (DRU),这两个单元互为镜像。每个 DRU 包含半数活动节点和备用节点,并包含一个完整的数据副本。为确保具有容错功能,支持一个 DRU 的计算机对于电源(建议使用不间断电源设备)、处理部件和存储设备必须完全自支持。如果一个 DRU 发生电源故障,另一个 DRU 中的节点可以继续处理请求,直至电源恢复正常。

如果不使用会话持久性机制,当一个 Web 或 EJB 容器故障转移到其他容器时,HTTP 或 SFSB 会话状态(包括已钝化的会话状态)将丢失。将 HADB 用于会话持久性可避免发生这种情况。HADB 在单独但紧密集成的持久性存储层中存储和检索状态信息。

会话数据被删除时,HADB 将收回空间。HADB 将会话数据记录置于固定大小的块中。块中的所有记录均被删除时,块将被释放。可以随机删除块中的记录,这样将使块中产生空洞。在将新记录插入到块中并需要连续的空间时,将删除空洞,从而使块更加紧凑。

以上是体系结构的简短摘要。有关更多信息,请参见《Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Deployment Planning Guide》