Sun Java System Application Server 9.1 部署规划指南

HADB 管理系统

HADB 管理系统提供了内置安全功能并简化了多平台管理。如下图所示,HADB 管理体系结构包含以下组件:

如图所示,在运行 HADB 服务的每台计算机上都运行了一个 HADB 管理代理。每台计算机通常承载一个或多个 HADB 节点。与 Application Server 域类似,HADB 管理域中包含多台计算机。要容许数据库出现故障,域中必须至少有两台计算机;通常计算机的个数必须为偶数以组成 DRU 对。因此,每个域中包含多个管理代理。

如图所示,每个域可以包含一个或多个数据库实例。每台计算机可以包含一个或多个节点,这些节点属于一个或多个数据库实例。

管理客户机

HADB 管理客户机是命令行实用程序 hadbm,用于管理 HADB 域及其数据库实例。HADB 服务可以连续运行(即使已停止关联的 Application Server 群集),但如果要删除这些服务,则必须小心将其关闭。有关使用 hadbm 的更多信息,请参见《Sun Java System Application Server 9.1 高可用性管理指南》中的第 3  章 “管理高可用性数据库”

可以使用 asadmin 命令行实用程序来创建和删除与高可用性群集关联的 HADB 实例。有关更多信息,请参见《Sun Java System Application Server 9.1 高可用性管理指南》中的第 9  章 “配置高可用性会话持久性和故障转移”

管理代理

管理代理是一个名为 ma 的服务器进程,它可以访问主机上的资源;例如,它可以创建设备并启动数据库进程。管理代理协调并执行管理客户机命令,如启动或停止数据库实例。

管理客户机通过指定管理代理的地址和端口号来连接到该代理。在连接后,管理客户机通过管理代理向 HADB 发送命令。代理将接收并执行请求。因此,管理代理必须正在主机上运行,才能向该主机发出任何 hadbm 管理命令。可以将管理代理配置为自动启动的系统服务。

确保管理代理的可用性

管理代理进程通过重新启动出现故障的 HADB 节点监控进程来确保其可用性。因此,要进行部署,您必须确保 ma 进程的可用性才能保持 HADB 的整体可用性。在重新启动后,管理代理通过域中的其他代理来恢复域和数据库配置数据。

可以使用主机操作系统 (Operating System, OS) 来确保管理代理的可用性。在 Solaris 或 Linux 上,init.d 可确保 ma 进程在出现故障并重新引导操作系统后的可用性。在 Windows 上,管理代理作为 Windows 服务运行。因此,如果管理代理出现故障或重新引导操作系统,操作系统将重新启动该代理。

管理域

HADB 管理域是一组主机,每个主机在相同的端口号上运行管理代理。域中的主机可以包含一个或多个 HADB 数据库实例。管理域是由代理使用的通用端口号以及在创建域或在其中添加代理时生成的标识符(称为 domainkey)定义的。domainkey 为域提供唯一的标识符,这一点至关重要,因为管理代理使用多址广播进行通信。可以将 HADB 管理域设置为与 Application Server 域相匹配。

在开发环境中,在一个域中包含多个数据库实例会非常有用,因为这样可以使不同的开发者小组使用其自己的数据库实例。在某些情况下,这在生产环境中也可能非常有用。

所有属于某个域的代理将协调其管理操作。在通过 hadbm 命令更改数据库配置时,所有代理将相应地更改配置。除非节点主机上的管理代理正在运行,否则无法停止或重新启动该节点。不过,即使某些代理不可用,您也可以执行 hadbm 命令以读取 HADB 状态或配置变量值。

可以使用以下管理客户机命令来执行与管理域相关的操作:

系统信息库

管理代理将数据库配置存储在系统信息库中。系统信息库具有较高的容错能力,因为将在所有管理代理上复制该系统信息库。通过将配置保存在服务器上,您可以从任何装有管理客户机的计算机中执行管理操作。

要对系统信息库进行任何更改,域中的大多数管理代理必须正在运行。因此,如果域中有 M 个代理,则必须至少有 M/2 + 1 个代理(向下舍入为整数)正在运行才能对系统信息库进行更改。

如果域中的某些主机不可用(例如,由于硬件故障),并且由于未达到法定数目而无法执行某些管理命令,请使用 hadbm disablehost 命令从域中删除出现故障的主机。