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

高可用性数据库概述

本节介绍了高可用性数据库 (HADB) 以及如何设置和配置 HADB 以与 Application Server 一起使用。

本节包括以下主题:

HADB 和 Application Server

HADB 是可独立于应用程序服务器层运行和管理的可水平伸缩的数据库。它旨在通过负载平衡、故障转移和状态恢复等功能支持高达 99.999% 的服务和数据可用性。

Application Server 使用 HADB 来存储 HTTP 和有状态会话 Bean (stateful session bean, SFSB) 的会话数据。如果没有会话持久性机制,则 Web 或 EJB 容器进行故障转移时,HTTP 或 SFSB 会话状态数据将丢失。

Application Server 不负责状态管理,这有很大的优势。Application Server 实例在其生命周期内作为可伸缩和高性能的 Java™ 2 Platform, Enterprise Edition(J2EE™ 平台)容器运行,并将状态复制委托给外部高可用性状态服务。由于采用这种松散耦合的体系结构,因此可以轻松地向群集中添加应用程序服务器实例或从群集中删除实例。您可以单独伸缩 HADB 状态复制服务以获得最佳的可用性和性能。

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》

HADB 节点

数据库节点包含一组进程、共享内存的专用区域和一个或多个辅助存储设备。数据库存储、更新和检索会话数据。每个节点都有一个镜像节点,因此节点成对出现。此外,为了获得最大限度的可用性,还包含两个或更多备用节点(每个 DRU 中一个),这样如果节点出现故障,在修复出现故障的节点的过程中备用节点可以接管。

有关可供选择的节点拓扑的说明,请参见《Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Deployment Planning Guide》中的第 3  章 “Selecting a Topology”

新增功能和改进

随 Sun Java System Application Server Enterprise Edition 8.1 一起提供的 HADB 的版本具有很多新增功能和改进。

通过更改管理系统的基本组件,HADB 管理得以改进。旧的 hadbm 接口功能经过细微修改得以维护。这些更改同时消除了对 SSH/RSH 的依赖性。

管理代理服务器进程 (ma) 组成一个域并将数据库配置存储在系统信息库中。系统信息库的信息分布于所有代理之间。

以下主题提供了更多详细信息:

常规改进

此 HADB 版本包含以下常规改进:

具体更改

此 HADB 版本包括对先前版本的以下更改。

使用 HADB 的用户支持

在就有关 HADB 问题向 Sun 用户支持致电之前,请尽可能多地收集以下信息: