用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster 数据服务指南(适用于 Solaris OS)

第 2 章 SPARC: 用于 Sun Java System Application Server EE 的 Sun Cluster HA(4.4 版之前的 HADB 版本)

此文档介绍了安装和配置 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 数据服务的过程。

此文档包含两章。

本章包含以下小节。

用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 概述

本节介绍了 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 数据服务如何使 Sun Java System Application Server EE (HADB) 软件具有高可用性。

用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 是一种数据服务,它具有相应的扩展属性,可以配置同时在多个节点上受控的数据库。

有关数据服务的一般信息,请参见《Sun Cluster Data Services Planning and Administration Guide for Solaris OS》中的第 1  章 “Planning for Sun Cluster Data Services”

Sun Java System Application Server EE (HADB) 软件与 Sun Java System Application Server Enterprise Edition 安装封装在一起。但是,您可以在不同的群集上分别运行 Sun Java System Application Server EE (HADB) 和 Sun Java System Application Server(如果合适)。此文档介绍了如何安装和配置允许您在群集中使用 Sun Java System Application Server EE (HADB) 的数据服务。首先,在群集中启用 Sun Java System Application Server EE (HADB) 以提供会话和 Enterprise Java Bean (EJB) 持久性。有关 Sun Java System Application Server EE (HADB) 软件的信息,请参阅 Sun Java System Application Server 文档。

用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 的实现并没有假定体系结构所依赖的应用程序的存在(例如数据库和 Web 服务器)。但是,可以将这些应用程序配置为具有高可用性,并可以在不同的群集上运行。

用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 的安装和配置过程概述

下表列出了安装和配置 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 时需要执行的所有任务,并提供了其中包含如何执行这些任务的详细说明的交叉引用。请按照表中所列的顺序来执行这些任务。

表 2–1 安装和配置 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 时需要执行的任务

任务 

参考 

规划 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 的安装和配置 

规划 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 的安装和配置

安装和配置 Sun Java System Application Server EE (HADB) 软件 

安装和配置 Sun Java System Application Server EE (HADB) 软件

创建 Sun Java System Application Server EE (HADB) 数据库 

如何创建 Sun Java System Application Server EE (HADB) 数据库

安装 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 软件包 

安装 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 软件包

将 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 注册并配置为同时在多个节点上受控的数据服务 

如何注册和配置 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA

验证 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 的安装和配置 

验证 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 的安装和配置

维护 HADB 数据库 

维护 HADB 数据库

调谐 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 的故障监视器 

调谐 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 的故障监视器


注 –

如果在 Sun Cluster 配置下运行多个数据服务,您可以按任意顺序设置数据服务,但以下情况例外。如果 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 数据服务依赖于 Sun Cluster HA for DNS 数据服务,则必须首先设置 DNS。有关详细信息,请参见《Sun Cluster Data Service for DNS Guide for Solaris OS》。DNS 软件包含在 Solaris 软件中。如果群集要从其它服务器获得 DNS 服务,请先将群集配置为 DNS 客户机。


规划 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 的安装和配置

本节包含规划 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 的安装和配置所需的信息。

将静态文件和数据存储在每个群集节点的本地文件系统上。Sun Java System Application Server EE (HADB) 软件是在安装 Sun Java System Application Server Enterprise Edition 软件时安装的。有关说明,请参见《用于 Sun Java System Application Server 的 Sun Cluster 数据服务指南(适用于 Solaris OS)》文档。创建数据库时,缺省情况下会在每个群集节点的本地文件系统上创建配置和数据文件。有关详细信息,请参见 Sun Java System Application Server 文档。

配置概述

在本节中使用多个主配置来规划 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 数据服务的安装和配置。此数据服务可能还支持其他配置。但是,要获得有关其他配置的信息,您需要与您的企业服务代表联系。

HADB 配置由数据节点或进程集合定义。每个节点都是主内存中的专用区域,带有一个或多个辅助存储设备。这些存储设备不是共享的存储器。每个 HADB 数据节点都必须对主内存中的某个区域或磁盘空间中的多个区域具有专用访问权限。HADB 数据节点是活动的或备用的。

建议运行 Sun Java System Application Server EE (HADB) 和 Sun Java System Application Server 的群集至少要有四个活动数据节点和两个备用节点。有关如何使用 hadbm 命令行实用程序创建带有四个活动节点和两个备用节点的 Sun Java System Application Server EE (HADB) 的示例,请参见“创建 Sun Java System Application Server EE (HADB) 数据库”。要获得高可用性,配置 HADB 数据冗余单元 (DRU) 以使用 Sun Cluster 互连。有关 DRU 的详细信息,请参见 Sun Java System Application Server 文档。客户机应用程序中的 HADB JDBC 驱动程序用于处理对数据库的高可用性访问。

下图说明了对 Sun Java System Application Server EE (HADB) 和 Sun Java System Application Server 建议的最低配置。

图 2–1 建议的最低配置

图显示的是建议的最低配置。

配置规划问题

使用本节中的问题规划 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 数据服务的安装和配置。有关可能适用于这些问题的信息,请参见《Sun Cluster Data Services Planning and Administration Guide for Solaris OS》中的“Considerations for Installing and Configuring a Data Service”。另请参见《Sun Cluster Data Services Planning and Administration Guide for Solaris OS》中的附录 C “Data Service Configuration Worksheets and Examples”中的工作单。

如果您选择将 HADB 数据服务与其他高可用性应用程序一起使用,则可能存在资源依赖性。有关 Resource_dependencies 属性的说明,请参见《Sun Cluster Data Services Planning and Administration Guide for Solaris OS》中的附录 A “Standard Properties”

安装和配置 Sun Java System Application Server EE (HADB) 软件

Sun Java System Application Server EE (HADB) 软件是 Java 2 Enterprise Edition (J2EE™) 1.3 的兼容关系数据库。用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 数据服务用于满足企业用户的需要并在 Sun Cluster 软件的控制下运行。Sun Java System Application Server 提供高可用、高伸缩的事务会话状态持久性基础结构。Application Server 使用 HADB 来存储会话信息。HADB 管理客户机是用于 HADB 的命令行界面,有一整套实用程序可用来进行 HADB 的配置、运行时管理和监视。

Sun Java System Application Server 文档、hadbm 手册页和 asadmin 命令会话持久性手册页中包含了有关使用这些实用程序的说明。Sun Java System Application Server EE (HADB) 软件与 Sun Java System Application Server Enterprise Edition 封装在一起。有关为 Sun Java System Application Server 安装和配置 HADB 的信息,请参见 Sun Java System Application Server 文档。有关配置 Sun Cluster HA for Sun Java System Application Server 的信息,请参见《用于 Sun Java System Application Server 的 Sun Cluster 数据服务指南(适用于 Solaris OS)》

创建 Sun Java System Application Server EE (HADB) 数据库

本节介绍在 Sun Cluster 环境中配置和创建初始 HADB 数据库的过程。在创建数据库之前,请注意以下限制。

Procedure如何创建 Sun Java System Application Server EE (HADB) 数据库

按照以下过程中的示例创建、启动和检验数据库。

步骤
  1. 创建数据库。此命令将自动启动数据库。


    # hadbm create \
    -H clusternode1-priv,clusternode2-priv,clusternode3-priv, \
    clusternode4-priv,clusternode5-priv,clusternode6-priv \
    --devicesize=2048 \
    -a 4 --set ManagementProtocol=rsh --dbpassword=secret12 \
    -s 2 hadb
    

    有关详细信息,请参见 Sun Java System Application Server 文档。


    注 –

    必须通过使用 Sun Cluster 专用互连主机名指定主机。要查看这些主机名,请从主 Sun Cluster 节点运行 scconf -p | less 命令。



    注 –

    如果您使用的是推荐的 SSH 设置,则无需指定 ManagementProtocol 属性。


  2. 检验数据库是否正在运行。


    # hadbm status hadb --nodes
    
  3. 停止数据库。


    # hadbm stop hadb
    
  4. 创建会话存储和 JDBC 连接池。

    有关详细信息,请参见 Sun Java System Application Server 文档。

安装 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 软件包

如果您在初始 Sun Cluster 安装期间没有安装 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 软件包,请执行此过程以安装软件包。在要安装 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 软件包的每个群集节点上执行此过程。

如果要同时安装多个数据服务,请执行《Sun Cluster 软件安装指南(适用于 Solaris OS)》中的“安装软件”


注 –

如果您使用的是 Solaris 10,则在全局区域中安装这些软件包。要确保在安装软件包后,不会将这些软件包复制到所创建的任何本地区域中,请使用 scinstall 实用程序安装这些软件包。请使用 Sun Java Enterprise System Common Installer 程序。


Procedure如何使用 Sun Java Enterprise System Common Installer 程序来安装 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 软件包

您可以使用命令行界面 (CLI) 或图形用户界面 (GUI) 来运行 Sun Java Enterprise System Common Installer 程序。CLI 和 GUI 中指令的内容和顺序类似。

要完成该过程,您需要 Sun Java Enterprise System Common Installer CD-ROM。

步骤
  1. 在安装 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 软件包的群集节点上成为超级用户。

  2. (可选的)如果要使用 GUI 来运行 Sun Java Enterprise System Common Installer 程序,请确保已设置 DISPLAY 环境变量。

  3. 将 Sun Java Enterprise System Common Installer CD-ROM 装入 CD-ROM 驱动器。

    如果卷管理守护进程 vold(1M) 正在运行并配置为管理 CD-ROM 设备,则它将在 /cdrom 目录中自动安装 CD-ROM。

  4. 更改到 CD-ROM 的 Sun Java Enterprise System Common Installer 目录。


    # cd /cdrom/Solaris_sparc
    
  5. 启动 Sun Java Enterprise System Common Installer 程序。


    # ./installer
    
  6. 当提示您接受许可证协议和相应的语言支持时,请接受。

    缺省情况下,英语支持为可用的语言支持。

  7. 在“可用服务和 Sun Cluster 3.1 子组件”下选择“用于 Sun Java System 的 Sun Cluster 代理”,然后继续。

    此选项包含所有用于 Sun Java System 应用程序的可用 Sun Cluster 数据服务,包括 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA。

  8. 当提示您输入配置的时间时,请选择“以后配置”。

    指定“以后配置”,以便在安装之后执行配置。

  9. (可选)如果您不希望注册产品以及接收产品更新,取消选择“产品注册”框。

  10. 按照屏幕上的说明在节点上安装 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 软件包。

    Sun Java Enterprise System Common Installer 程序将显示安装的状态。当安装完成时,程序会显示安装摘要和安装日志。

  11. 退出 Sun Java Enterprise System Common Installer 程序。

    退出安装程序之前,请确保 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 已成功安装。通过执行以下命令检查软件包是否存在:


    # pkginfo -l SUNWschadb
    
  12. 从 CD-ROM 驱动器卸下 Sun Java Enterprise System Common Installer CD-ROM。

    1. 要确保 CD-ROM 不在使用,更改到属于 CD-ROM 的目录。

    2. 弹出 CD-ROM。


      # eject cdrom
      

注册和配置 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA

此过程介绍了如何使用 scrgadm 命令将 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 数据服务注册和配置为同时在多个节点上主控的资源。


注 –

有关用于注册和配置数据服务的其他选项的详细信息,请参见《Sun Cluster Data Services Planning and Administration Guide for Solaris OS》中的“Tools for Data Service Resource Administration”


要执行此过程,您需要以下配置信息。

设置 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 的扩展属性

以下各节包含有关为 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 注册和配置资源的说明。有关扩展属性的信息,请参见附录 B,用于 Sun Java System Application Server EE 的 Sun Cluster HA(4.4 版之前的 HADB 版本)的属性。“可调”条目表示何时可以更新属性。

有关所有 Sun Cluster 属性的详细信息,请参见《Sun Cluster Data Services Planning and Administration Guide for Solaris OS》中的附录 A “Standard Properties”

要设置资源的扩展属性,请在创建或修改资源的 scrgadm(1M) 命令中使用以下选项:


-x property=value 
-x property

标识要设置的扩展属性

value

指定要为扩展属性设置的值

创建资源后,您还可以使用《Sun Cluster Data Services Planning and Administration Guide for Solaris OS》中的第 2  章 “Administering Data Service Resources”中的过程来配置资源。

Procedure如何注册和配置 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA

请执行以下步骤以完成配置。

步骤
  1. 成为某个群集成员的超级用户。

  2. 注册 Sun Java System Application Server EE (HADB) 的资源类型。


    # scrgadm -a -t SUNW.hadb
    
  3. 创建 Sun Java System Application Server EE (HADB) 的资源组。


    # scrgadm -a -g resource_group \
    -y Maximum_primaries=nodes_in_rg \
    -y Desired_primaries=nodes_in_rg \
    -h nodelist
    
    -a

    指定要创建资源组。

    -g resource_group

    指定要创建的资源组的名称。

    -y Maximum_primaries=nodes_in_rg

    指定最多可以在多少个节点上启动该资源。指定的数值必须与 Desired_primaries 属性的值相同。

    -y Desired_primaries=nodes_in_rg

    指定需要在多少个节点上启动该资源。指定的数值必须与 Maximum_primaries 属性的值相同。

    -h nodelist

    指定要运行 Sun Java System Application Server EE (HADB) 的群集节点子集, 各节点之间以逗号分隔。如果省略了此选项,则所有群集节点均将运行 Sun Java System Application Server EE (HADB)。使用 scconf -p | less 命令查找节点列表名称。

  4. 为 Sun Java System Application Server EE (HADB) 创建具有或不具有自动恢复功能的资源。

    • 如果不需要自动恢复功能,则执行以下命令。


      # scrgadm -a -j resource -g resource_group  -t SUNW.hadb \
      -x Confdir_list=config_directory_list \
      -x HADB_ROOT=install_directory \
      -x DB_name=database_name
      
      -a

      指定将创建数据服务资源

      -j resource

      指定要创建的资源命名为 resource

      -g resource_group

      指定要将资源添加到名为 resource_group 的资源组中

      -t SUNW.hadb

      指定预定义的资源类型名称

      -x Confdir_list=config_directory_list

      指定配置目录的路径

      -x HADB_ROOT=install_directory

      指定安装目录

      -x DB_name=database_name

      指定 HADB 数据库的名称

    • 如果您确实希望使用自动恢复功能,请执行以下命令。


      # scrgadm -a -j resource -g resource_group  -t SUNW.hadb \
      -x Confdir_list=config_directory_list \
      -x HADB_ROOT=install_directory \
      -x DB_name=database_name \
      -x Auto_recovery=TRUE \
      -x Auto_recovery_command=command \
      -x DB_password_file=password_file
      
      -x Auto_recovery=TRUE

      指定要使用自动恢复功能。

      -x Auto_recovery_command=command

      指定数据库恢复后要执行的命令。此扩展属性是可选的,与 Auto_recovery 属性的值无关。

      -x DB_password_file=password_file

      指定 HADB 从其中读取数据库密码的文件。有关密码文件的格式和内容,请参见 Sun Java System Application Server 文档。


      注 –

      自动恢复命令和数据库口令文件必须都存在于每个节点的本地文件系统中。


  5. 使资源组处于联机状态。


    # scswitch -Z -g resource_group
    
    -Z

    启用资源及其监视器

    -g resource_group

    指定要启用的应用程序资源组的名称

  6. 检验资源组和 HADB 资源是否处于联机状态。


    # scstat -g
    # ps -ef
    
  7. 要验证是否已正确安装和配置 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA,请运行以下命令。


    # hadbm status database_name --nodes
    

    其输出应指明所指定的数据库正在运行。


示例 2–1 创建具有自动恢复功能的 SUNW.hadb 资源

此示例显示了如何创建具有自动恢复功能的 SUNW.hadb 资源。

在此示例中,该资源具有以下属性:


scrgadm -a -j hadb-rs -g hadb-rg -t SUNW.hadb \
-x Confdir_list=/etc/opt/SUNWhadb/dbdef/hadb  \
-x HADB_ROOT=/opt/SUNWappserver7/SUNWhadb/4 \
-x DB_name=hadb \
-x Auto_recovery=true \
-x Auto_recovery_command=/usr/local/etc/create-session-store \
-x DB_password_file=/usr/local/etc/hadb-password-file

验证 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 的安装和配置

本节介绍如何检验是否正确安装和配置了数据服务。

Procedure如何验证 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 的安装和配置

步骤
  1. 确保 HADB 是在 Sun Cluster 软件的控制下启动的。


    # scswitch -Z -g resource_group
    
  2. 检验资源组和 HADB 资源是否处于联机状态。


    # scstat -g
    # ps -ef
    
  3. 验证是否已正确安装和配置 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA。


    # hadbm status database_name --nodes
    

    其输出应指明所指定的数据库正在运行。

维护 HADB 数据库

本节说明如何维护 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 数据服务中的 HADB 数据库。

Procedure如何维护 HADB 数据库

如果要运行用于启动滚动重启 HADB 节点的 HADB 维护命令,则必须在执行维护命令之前禁用故障监视器中的 HADB 资源探测,然后在完成命令和滚动重启后启用该探测。

步骤
  1. 禁用故障监视器。


    # scswitch -n -M -j resource
    
  2. 运行可能会引起滚动重启的命令。

    可能导致滚动重启的 hadbm 子命令包括 setrestart addnodes

  3. 重新启用故障监视器。


    # scswitch -e -M -j resource
    
维护数据库的其他方法

或者,禁用 HADB 资源并在执行维护命令时不在 Sun Cluster 的控制下启动 HADB。

调谐 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 的故障监视器

用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 的故障监视器包含在表示 Sun Java System Application Server EE (HADB) 的资源中。此资源是在注册和配置 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA 时创建的。有关更多信息,请参见“注册和配置 用于 Sun Java System Application Server EE (HADB) 的 Sun Cluster HA”。

此资源的系统属性和扩展属性控制故障监视器的行为。这些属性的缺省值确定了故障监视器的预设行为。预设行为应该适用于大多数 Sun Cluster 安装。因此,在需要修改此预设行为时才应该调谐故障监视器。

有关更多信息,请参见以下部分。

探测过程中故障监视器执行的操作

HADB 资源的 start 方法将启动被配置为在本地 Sun Cluster 节点上运行的 HADB 节点(如果它们不在运行)。然后,该方法将尝试启动 HADB 数据库。如果出现故障,则稍后在探测期间将启动数据库。

故障监视器探测将定期检查 HADB 数据库和 HADB 节点的状态。探测将重新启动出现故障的 HADB 节点。如果在 start 方法中,HADB 资源没有准备好启动数据库,则探测还将启动 HADB 数据库。对于此过程的每一次重复,探测执行以下步骤:

  1. 探测通过执行 hadbm statushadbm status --nodes 命令来检索 HADB 数据库和 HADB 节点的当前状态。

  2. 如果未运行数据库,探测将检查与该数据库对应的 HADB stopstate 文件是否存在于本地 Sun Cluster 节点上。当 hadbm start 命令启动数据库时,它将引用 stopstate 文件以进行节点的角色分配。

  3. 如果 stopstate 文件存在,HADB 资源将检查此文件以确定是否可以启动数据库。

    • 如果可以启动数据库,探测将启动数据库并将资源状态设置为 Online

    • 如果无法启动数据库,探测则将资源状态设置为 Online Degraded

  4. 如果数据库正在运行,探测将启动被配置为在 Sun Cluster 节点上运行的 HADB 节点。

  5. 如果运行了数据库和本地 HADB 节点,则资源状态为 Online Degraded 时,探测会把该资源状态设置为 Online

  6. 如果 HADB 资源组中的所有 Sun Cluster 节点上的 HADB 资源在 Online Degraded 状态下运行的时间超过 Stop_timeout 秒,HADB 资源将认为数据库无法启动。有关 Stop_timeout 属性的说明,请参见《Sun Cluster Data Services Planning and Administration Guide for Solaris OS》中的附录 A “Standard Properties”中的 method_timeout 资源属性。

  7. 如果将 Auto_recovery 扩展属性设置为 TRUE,则 HADB 资源将尝试恢复数据库。

  8. 如果尝试恢复数据库,探测将执行以下步骤:

    • 在资源组节点列表的其中一个 Sun Cluster 节点上发布 hadbm clear --fast 命令。此命令将清除数据库内容并重新初始化和重新启动数据库。

    • 如果 hadbm clear 命令成功,将在发送 hadbm clear 命令的同一 Sun Cluster 节点上发送 Auto_recovery_command 中指定的命令。该命令通常是包含 asadmin create-session-store 命令的脚本。该命令也可以实现其他操作。例如,它可以向 Application Server 管理员发送邮件。

    • 如果两个步骤均成功,探测会将资源状态设置为 Online