通常,可以在与 Application Server(同机拓扑)相同的系统上或单独的主机(单独层拓扑)上安装 HADB。有关这两个选项的更多信息,请参见《Sun Java System Application Server 9.1 部署规划指南》中的第 3 章 “选择拓扑”。
必须安装 HADB 管理客户机,才能使用 asadmin configure-ha-cluster 命令设置高可用性。使用 Java Enterprise System 安装程序时,即使要将节点安装在单独层上,也必须安装完整的 HADB 实例以便安装管理客户机。
在单或双 CPU 系统上,如果该系统至少有 2 GB 的内存,则可以同时安装 HADB 和 Application Server。否则,请在单独的系统上安装 HADB 或使用其他硬件。要使用 asadmin configure-ha-cluster 命令,必须同时安装有 HADB 和 Application Server。
每个 HADB 节点需要 512 MB 的内存,因此计算机需要 1 GB 的内存来运行两个 HADB 节点。如果计算机内存不足,请在不同的计算机上设置每个节点。例如,您可以在以下系统上安装两个节点:
两个单 CPU 系统,每个系统具有 512 MB 到 1 GB 内存
一个单或双 CPU 系统,具有 1 GB 到 2 GB 内存
您可以使用 Java Enterprise System 安装程序或 Application Server 独立安装程序安装 HADB。在上述任一安装程序中,请在“组件选项”页面中选择用于安装 HADB(在 Java ES 中称为高可用性会话存储) 的选项。在您的主机上完成安装。如果您使用 Application Server 独立安装程序,并选择两个单独的计算机运行 HADB,则必须在两台计算机上选择相同的安装目录。
本手册中,HADB_install_dir 表示安装 HADB 的目录。默认的安装目录将取决于您是否将 HADB 作为 Java Enterprise System 的一部分安装。对于 Java Enterprise System,默认安装目录为 /opt/SUNWhadb/4。对于独立的 Application Server 安装程序,安装目录为 /opt/SUNWappserver/hadb/4 。
节点监控进程 (node supervisor processes, NSUP) 通过彼此交换 "I'm alive" 消息来确保 HADB 的可用性。NSUP 可执行文件必须具有 root 用户权限才能尽可能快地作出响应。clu_nsup_srv 进程不使用重要的 CPU 资源,它所占用的资源少,因此使用实时优先级运行该进程并不影响性能。
Java Enterprise System 安装程序会自动正确地设置 NSUP 权限,因此您不必采取进一步操作。但是,使用独立的 Application Server(非 root 用户)安装程序,您必须在创建数据库之前手动设置权限。
如果 NSUP 不具有正确的权限,您可能会注意到以下资源不足时出现的问题,例如:
出现网络分区错误和节点重新启动之前,HADB 历史文件中显示 "Process blocked for n seconds" 警告消息。
异常中止的事务和其他异常。
如果 NSUP 无法设置实时优先级,则 errno 在 Solaris 和 Linux 中被设为 EPERM。在 Windows 中,它将发出“无法设置实时优先级”的警告。系统将错误写入 ma.log 文件,并且进程在没有实时优先级的情况下继续进行。
在以下情况下无法设置实时优先级:
HADB 安装在 Solaris 10 非全局区域中
在 Solaris 10 中取消 PRIV_PROC_LOCK_MEMORY(允许进程锁定物理内存中的页)和/或 PRIV_PROC_PRIOCNTL 权限
用户关闭 setuid 权限
用户将软件作为 tar 文件(Application Server 的非 root 用户安装选项)安装