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

安装和配置 Sun Cluster HA for Sun Java System HADB

本章介绍安装和配置 Sun Cluster HA for Sun Java System HADB 的过程。

本章包含以下过程。

Sun Cluster HA for Sun Java System HADB 概述

本节介绍 Sun Cluster HA for Sun Java System HADB 如何使 Sun Java System HADB 具有高可用性。

Sun Cluster HA for Sun Java System HADB 是同时受控于多个节点的数据服务,具有可用于配置数据库的相应扩展特性。

将 Sun Cluster HA for Sun Java System HADB 配置为受控于多个节点的数据服务可以使得 Sun Java System HADB 具有高可用性。 请参阅Sun Cluster 数据服务规划和管理指南(适用于 Solaris OS)》中的“规划 Sun Cluster 数据服务”以获得有关数据服务的一般信息。

Sun Java System Application Server 企业版附带有 Sun Java System HADB 软件。 但是,您可以根据需要在不同的群集中运行 Sun Java System HADB 和 Sun Java System Application Server。 本文档介绍如何在群集中安装和配置使您能够使用 Sun Java System HADB 的数据服务。 首先,在群集中启用 Sun Java System HADB 以提供会话和 Enterprise Java Bean (EJB) 持久性。 有关 Sun Java System HADB 的信息,请参阅 Sun Java System Application Server 文档。 Sun Cluster HA for Sun Java System HADB 的实现假定体系结构所依赖的应用程序不存在。 但是,体系结构所依赖的那些应用程序(如用于开发票的数据库和应配置为具有高可用性的 Web 服务器)可能会在另一个群集中运行。

任务表: 安装和配置 Sun Cluster HA for Sun Java System HADB

表 1–1 任务表: 安装和配置 Sun Cluster HA for Sun Java System HADB

任务 

有关说明  

规划 Sun Java System HADB 的安装和配置 

规划 Sun Java System HADB 的安装和配置

安装和配置 Sun Java System HADB 

安装和配置 Sun Java System HADB

创建 Sun Java System HADB 数据库 

如何创建 Sun Java System HADB 数据库

规划 Sun Cluster HA for Sun Java System HADB 的安装和配置 

规划 Sun Cluster HA for Sun Java System HADB 的安装和配置

安装 Sun Cluster HA for Sun Java System HADB 软件包 

安装 Sun Cluster HA for Sun Java System HADB 软件包

将 Sun Cluster HA for Sun Java System HADB 注册并配置为同时受控于多个节点的数据服务 

如何注册和配置 Sun Cluster HA for Sun Java System HADB

配置资源扩展特性 

配置 Sun Cluster HA for Sun Java System HADB 扩展特性

检验 Sun Cluster HA for Sun Java System HADB 安装和配置 

检验 Sun Cluster HA for Sun Java System HADB 的安装和配置

维护 HADB 数据库  

维护 HADB 数据库

查看故障监视器信息 

Sun Cluster HA for Sun Java System HADB 故障监视器的操作


注意:

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


规划 Sun Java System HADB 的安装和配置

在开始安装和配置 Sun Java System HADB 之前,请结合Sun Cluster 数据服务规划和管理指南(适用于 Solaris OS)》的“配置工作表”中的工作表来使用本节。

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

安装和配置 Sun Java System HADB

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

有关使用这些公用程序的说明,请参阅 Sun Java System Application Server 7 Administrator's Guidehadbm 手册页和 asadmin 命令会话持久性手册页。 Sun Java System Application Server 7 企业版及更高版本都附带有 Sun Java System HADB。 有关与 Sun Java System Application Server 一起安装和配置 HADB 的信息,请参阅 Sun Java System Application Server 7 Administrator's Guide。 有关为 Sun Java System Application Server 配置 Sun Cluster HA 的信息,请参阅用于 Sun Java System Application Server 的 Sun Cluster 数据服务指南(适用于 Solaris OS)

创建 Sun Java System HADB 数据库

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

如何创建 Sun Java System 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 7 Administrator's Guide


    注意:

    必须通过使用 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 7 Administrator's Guide

规划 Sun Cluster HA for Sun Java System HADB 的安装和配置

本节包含规划 Sun Cluster HA for Sun Java System HADB 的安装和配置所需的信息。

配置概述

请使用本节中的多个主节点配置来规划 Sun Cluster HA for Sun Java System HADB 的安装和配置。 Sun Cluster HA for Sun Java System HADB 数据服务可能支持其它配置。 但是,要获得有关其它配置的信息,您需要与您的企业服务代表联系。

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

对于运行 Sun Java System HADB 和 Sun Java System Application Server 的群集,建议至少应该具有四个活动数据节点外加两个备用节点。 有关如何通过使用 hadbm 命令行公用程序来创建具有四个活动节点和两个备用节点的 Sun Java System HADB 的示例,请参阅创建 Sun Java System HADB 数据库。 要获得高可用性,配置 HADB 数据冗余单元 (DRU) 以使用 Sun Cluster 互连。 请参阅 Sun Java System Application Server 7 Update 1 Collection(Solaris 版)中的 Sun Java System Application Server 7 Administrator's Guide 以获得有关 DRU 的详细信息。 客户机应用程序中的 HADB JDBC 驱动程序处理对数据库的高可用性访问。

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

图形 1–1 建议的最低配置

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

配置规划问题

规划 Sun Cluster HA for Sun Java System HADB 的安装和配置时,请回答本节中的问题。 请参阅Sun Cluster 数据服务规划和管理指南(适用于 Solaris OS)》中的“注意事项”以获得可能适用于这些问题的信息。 如果选择将 HADB 数据服务与其它高可用性应用程序一起使用,则可能会存在资源相关性。 请参阅Sun Cluster 数据服务规划和管理指南(适用于 Solaris OS)》中的“标准特性”以获得 Resource_dependencies 特性的说明。

安装 Sun Cluster HA for Sun Java System HADB 软件包

如果在 Sun Cluster 初始安装期间没有安装 Sun Cluster HA for Sun Java System HADB 软件包,请执行此过程以安装相应的软件包。 在要安装 Sun Cluster HA for Sun Java System HADB 软件包的每个群集节点上执行此过程。

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

如何通过使用 Sun Java Enterprise System Common Installer 程序安装 Sun Cluster HA for Sun Java System HADB 软件包

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

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

  1. 在要安装 Sun Cluster HA for Sun Java System HADB 软件包的群集节点上成为超级用户。

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

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

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

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

    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 Cluster HA for Sun Java System HADB。

  8. 当提示您选择安装类型时,请选择。

    • 如果希望安装时执行最小配置,请选择“定制”。 系统将提示您提供所需的配置信息。

    • 如果您仅希望安装数据服务软件包,而不进行任何配置,请选择“最小”。

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

  10. 按照屏幕上的说明在节点上安装 Sun Cluster HA for Sun Java System HADB 软件包。

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

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

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


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

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

    2. 弹出 CD-ROM。


      # eject cdrom
      

注册和配置 Sun Cluster HA for Sun Java System HADB

本过程介绍如何使用 scrgadm 命令将 Sun Cluster HA for Sun Java System HADB 注册和配置为同时受控于多个节点的资源。


注意:

请参阅Sun Cluster 数据服务规划和管理指南(适用于 Solaris OS)》中的“数据服务资源管理工具”以获得有关使您能够注册和配置数据服务的其它选项的详细信息。


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

如何注册和配置 Sun Cluster HA for Sun Java System HADB

请执行以下步骤以完成配置。 有关扩展特性的说明,请参阅表 1–2

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

  2. 注册 Sun Java System HADB 的资源类型。


    # scrgadm -a -t SUNW.hadb
    
  3. 为 Sun Java System 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 HADB 的群集节点组成的子集,节点之间以逗号分隔。 如果不指定此选项,则所有群集节点都将运行 Sun Java System HADB。 使用 scconf -p | less 命令来查看节点列表名称。

  4. 创建具有或不具有自动恢复功能的 Sun Java System 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 7 Administrator's Guide 以获得口令文件的格式和内容。


      注意:

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


  5. 使资源组联机。


    # scswitch -Z -g resource_group
    
    -Z

    启用资源及其监视器

    -g resource_group

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

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


    # scstat -g
    # ps -ef
    
  7. 要检验是否正确安装和配置了用于 HADB 的 Sun Cluster HA,请运行以下命令。


    # hadbm status database_name --nodes
    

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

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


实例 1–1 创建具有自动恢复功能的 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 Cluster HA for Sun Java System HADB 扩展特性

本节介绍了如何配置 Sun Cluster HA for Sun Java System HADB 扩展特性。 通常,在创建 Sun Java System HADB 资源时使用命令行 scrgadm -x parameter=value 配置扩展特性。 也可以使用Sun Cluster 数据服务规划和管理指南(适用于 Solaris OS)》的“管理数据服务资源”中介绍的过程来配置 Sun Cluster HA for Sun Java System HADB 扩展特性。

请参阅Sun Cluster 数据服务规划和管理指南(适用于 Solaris OS)》中的“标准特性”以获得有关所有 Sun Cluster 特性的详细信息。

表 1–2 介绍了可以为 Sun Java System HADB 配置的扩展特性。 对于创建 Sun Java System HADB 资源来说,唯一必需的扩展特性是 Confdir_list 特性。 Confdir_list 特性指定了 Sun Java System HADB 配置文件所在的目录。 您可以动态地更新某些扩展特性。 但是,您只有在创建资源时才可以更新其它扩展特性。 “可调”项表示何时可以更新各个特性。

表 1–2 Sun Cluster HA for Sun Java System HADB 扩展特性

名称/数据类型  

说明 

Confdir_list(字符串数组)

指向配置目录的路径名称。 Sun Cluster HA for Sun Java System HADB 需要此扩展特性,并且此扩展特性必须包含一项。  

 

缺省值:

范围:

可调:创建时

Auto_recovery(布尔值)

指定当无法启动数据库时是否尝试恢复。 

缺省值: FALSE

可调:任何时候

HADB_ROOT(字符串)

安装目录位置。 Sun Cluster HA for Sun Java System HADB 需要此扩展特性。 

缺省值:

可调:创建时

Auto_recovery_command(字符串)

恢复数据库后要执行的命令。 不管 Auto_recovery 特性取何值,此扩展特性都是可选的。

缺省值: “”

可调:任何时候

DB_password_file(字符串)

HADB 从中读取口令的文件。 

缺省值: “”

可调:任何时候

DB_name(字符串)

HADB 数据库的名称。 Sun Cluster HA for Sun Java System HADB 需要此扩展特性。  

缺省值:

可调:禁用时

检验 Sun Cluster HA for Sun Java System HADB 的安装和配置

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

如何检验 Sun Cluster HA for Sun Java System HADB 的安装和配置

请使用以下过程检验是否正确安装和配置了 Sun Cluster HA for Sun Java System HADB。

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


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


    # scstat -g
    # ps -ef
    
  3. 检验是否正确安装和配置了用于 HADB 的 Sun Cluster HA。


    # hadbm status database_name --nodes
    

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

维护 HADB 数据库

本节说明如何维护 Sun Cluster HA for Sun Java System HADB 数据服务中的 HADB 数据库。

如何维护 HADB 数据库

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

  1. 禁用故障监视器。


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

    可能会引起滚动重启的 hadbm 子命令包括: setrestartaddnodes

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


    scswitch -e -M -j resource
    

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

Sun Cluster HA for Sun Java System HADB 故障监视器的操作

本节介绍 Sun Cluster HA for Sun Java System HADB 故障监视器的功能。

HADB 资源的 start 方法将启动被配置为在本地 Sun Cluster 节点上运行的 HADB 节点(如果它们不在运行)。 该方法将尝试启动 HADB 数据库;如果失败,将随后在探测中启动该数据库。

Sun Cluster HA for Sun Java System HADB 故障监视器探测将定期检查 HADB 数据库和 HADB 节点的状态。 探测将重新启动失败的 HADB 节点,如果在使用 start 方法启动期间,HADB 资源没有启动数据库,则还将启动 HADB 数据库。 对于此过程的每一次重复,探测执行以下步骤:

  1. 首先,探测将休眠 Thorough_Probe_Interval 秒。

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

  3. 如果数据库不在运行,探测将检查本地 Sun Cluster 节点上是否存在与该数据库对应的 HADB stopstate 文件。 在启动数据库时,hadbm start 命令将使用 stopstate 文件来确定节点的角色。

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

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

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

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

  6. 如果数据库和本地 HADB 节点都在运行,探测将资源状态设置为 Online(如果原状态为 Online Degraded)。

  7. 如果在 HADB 资源组的所有 Sun Cluster 节点中,HADB 资源处于 Online Degraded 状态的时间长于 Stop_timeout 秒,则 HADB 资源将认为无法启动该数据库。

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

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

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

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

    • 如果以上两步都成功,探测将资源状态设置为 Online。

  10. 接着从第一步开始重复操作。


注意:

可以使用 scrgadm 命令调节 Thorough_Probe_Interval 参数和 Stop_timeout 参数。 有关详细信息,请参阅Sun Cluster 数据服务规划和管理指南(适用于 Solaris OS)》中的“标准特性”