本章介绍安装和配置 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 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 安装和配置 | |
维护 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 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 是支持 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 Guide、hadbm 手册页和 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 Cluster 环境中配置和创建初始 HADB 数据库的过程。 在创建数据库之前,请注意以下限制。
必须在数据库创建期间通过使用 --hosts 选项来指定偶数个 Sun Cluster 主机。
必须通过使用 Sun Cluster 专用互连主机名来指定 Sun Cluster 主机。 clusternode1-priv 就是一个专用互连主机名。
Sun Java System HADB 镜像节点必须位于其它 Sun Cluster 节点上。
请不要使用 --inetd 选项。
所有历史文件、数据和日志设备以及数据库配置文件都必须位于本地文件系统中。
如果停止一个以上的 Sun Cluster 节点,则整个数据库将关闭。 资源组在任何时候都应该只停止一个节点,或者使用 scswitch -F -g 命令来停止所有节点。
对 HADB 资源组,不能使用资源组卸载功能。
对 HADB 资源组,不能使用 HA Storage Plus。
按照以下过程中的示例创建、启动和检验数据库。
创建数据库。 此命令将自动启动数据库。
# 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 特性。
检验数据库是否正在运行。
# hadbm status hadb --nodes |
停止数据库。
# hadbm stop hadb |
创建会话存储和 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 数据服务可能支持其它配置。 但是,要获得有关其它配置的信息,您需要与您的企业服务代表联系。
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 的最低配置。
规划 Sun Cluster HA for Sun Java System HADB 的安装和配置时,请回答本节中的问题。 请参阅《Sun Cluster 数据服务规划和管理指南(适用于 Solaris OS)》中的“注意事项”以获得可能适用于这些问题的信息。 如果选择将 HADB 数据服务与其它高可用性应用程序一起使用,则可能会存在资源相关性。 请参阅《Sun Cluster 数据服务规划和管理指南(适用于 Solaris OS)》中的“标准特性”以获得 Resource_dependencies 特性的说明。
所有历史文件、数据和日志设备以及数据库配置文件是否都将位于本地文件系统?
将使用的 Sun Cluster 专用互连主机名是什么?
如果在 Sun Cluster 初始安装期间没有安装 Sun Cluster HA for Sun Java System HADB 软件包,请执行此过程以安装相应的软件包。 在要安装 Sun Cluster HA for Sun Java System HADB 软件包的每个群集节点上执行此过程。
如果要同时安装多个数据服务,请执行《Sun Cluster 软件安装指南(适用于 Solaris OS)》的“安装软件”中的过程。
您可以使用命令行界面 (CLI) 或图形用户界面 (GUI) 来运行 Sun Java Enterprise System Common Installer 程序。 CLI 和 GUI 中指令的内容和顺序类似。
要完成此过程,需要 Sun Java Enterprise System Common Installer CD-ROM。
在要安装 Sun Cluster HA for Sun Java System HADB 软件包的群集节点上成为超级用户。
(可选的) 如果要使用 GUI 运行 Sun Java Enterprise System Common Installer 程序,请确保已设置 DISPLAY
环境变量。
将 Sun Java Enterprise System Common Installer CD-ROM 装入 CD-ROM 驱动器。
如果卷管理守护程序 vold(1M) 正在运行并被配置为管理 CD-ROM 设备,它将自动将 CD-ROM 装载到 /cdrom 目录中。
更改到 CD-ROM 的 Sun Java Enterprise System Common Installer 目录。
Sun Java Enterprise System Common Installer 位于此目录。
# cd /cdrom /Solaris_sparc |
启动 Sun Java Enterprise System Common Installer 程序。
# ./installer |
当提示您接受许可证协议和相应的语言支持时,请接受。
缺省情况下,英语支持为可用的语言支持。
在“可用服务和 Sun Cluster 3.1 子组件”下选择“用于 Sun Java System 的 Sun Cluster 代理”,然后继续。
此选项包含所有用于 Sun Java System 应用程序的可用 Sun Cluster 数据服务,包括 Sun Cluster HA for Sun Java System HADB。
当提示您选择安装类型时,请选择。
如果希望安装时执行最小配置,请选择“定制”。 系统将提示您提供所需的配置信息。
如果您仅希望安装数据服务软件包,而不进行任何配置,请选择“最小”。
(可选)如果您不希望注册产品以及接收产品更新,取消选择“产品注册”框。
按照屏幕上的说明在节点上安装 Sun Cluster HA for Sun Java System HADB 软件包。
Sun Java Enterprise System Common Installer 程序将显示安装的状态。 当安装完成时,程序会显示安装摘要和安装日志。
退出 Sun Java Enterprise System Common Installer 程序。
在退出安装程序之前,请确保已成功安装 Sun Cluster HA for Sun Java System HADB。 通过执行以下命令检查软件包是否存在:
# pkginfo -l SUNWschtt |
从 CD-ROM 驱动器中卸下 Sun Java Enterprise System Common Installer CD-ROM。
本过程介绍如何使用 scrgadm 命令将 Sun Cluster HA for Sun Java System HADB 注册和配置为同时受控于多个节点的资源。
请参阅《Sun Cluster 数据服务规划和管理指南(适用于 Solaris OS)》中的“数据服务资源管理工具”以获得有关使您能够注册和配置数据服务的其它选项的详细信息。
要执行此过程,您需要以下配置信息。
Sun Cluster HA for Sun Java System HADB 的资源类型的名称 (SUNW.hadb)
可以控制数据服务的群集节点的名称
请执行以下步骤以完成配置。 有关扩展特性的说明,请参阅表 1–2。
成为某个群集成员的超级用户。
注册 Sun Java System HADB 的资源类型。
# scrgadm -a -t SUNW.hadb |
为 Sun Java System HADB 创建资源组。
# scrgadm -a -g resource_group \ -y Maximum_primaries=nodes_in_rg \ -y Desired_primaries=nodes_in_rg \ -h nodelist |
指定要创建资源组。
指定要创建的资源组的名称。
指定最多可以在多少个节点上启动该资源。 指定的数值必须与 Desired_primaries 特性的值相同。
指定需要在多少个节点上启动该资源。 指定的数值必须与 Maximum_primaries 特性的值相同。
指定由要运行 Sun Java System HADB 的群集节点组成的子集,节点之间以逗号分隔。 如果不指定此选项,则所有群集节点都将运行 Sun Java System HADB。 使用 scconf -p | less 命令来查看节点列表名称。
创建具有或不具有自动恢复功能的 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 |
指定要创建数据服务资源。
指定要创建的资源的名称为 resource。
指定要将该资源添加到名为 resource_group 的资源组。
指定预定义的资源类型名称。
指定指向配置目录的路径。
指定安装目录。
指定 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 |
指定要使用自动恢复功能。
指定数据库恢复后要执行的命令。 不管 Auto_recovery 特性取何值,此扩展特性都是可选的。
指定 HADB 将从中读取数据库口令的文件。 请参阅 Sun Java System Application Server 7 Administrator's Guide 以获得口令文件的格式和内容。
自动恢复命令和数据库口令文件必须都存在于每个节点的本地文件系统中。
# scswitch -Z -g resource_group |
启用资源及其监视器
指定要启用的应用程序资源组的名称
检验资源组和 HADB 资源是否处于联机状态。
# scstat -g # ps -ef |
要检验是否正确安装和配置了用于 HADB 的 Sun Cluster HA,请运行以下命令。
# hadbm status database_name --nodes |
其输出应指明所指定的数据库正在运行。
下例显示了如何创建具有自动恢复功能的 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 |
上面示例中的资源具有以下特点:
该资源的名称为 hadb-rs。
该资源是名为 hadb-rg 的资源组的成员。
该资源是 SUNW.hadb 资源类型的实例。 本例中未显示该资源类型的注册。
配置目录为 /etc/opt/SUNWhadb/dbdef/hadb。
安装目录为 /opt/SUNWappserver7/SUNWhadb/4。
与该资源关联的 HADB 数据库实例的名称为 hadb。
打开了自动恢复功能。
自动恢复后要执行的命令的全路径为 /usr/local/etc/create-session-store。
HADB 口令文件为 /usr/local/etc/hadb-password-file。
本节介绍了如何配置 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。
确保 HADB 是在 Sun Cluster 软件的控制下启动的。
# scswitch -Z -g resource_group |
检验资源组和 HADB 资源是否处于联机状态。
# scstat -g # ps -ef |
检验是否正确安装和配置了用于 HADB 的 Sun Cluster HA。
# hadbm status database_name --nodes |
其输出应指明所指定的数据库正在运行。
本节说明如何维护 Sun Cluster HA for Sun Java System HADB 数据服务中的 HADB 数据库。
如果要运行将引起 HADB 节点滚动重启的 HADB 维护命令,则必须在执行维护命令之前禁用故障监视器中的 HADB 资源探测,并在命令和滚动重启完成后立即启用该探测。
禁用故障监视器。
scswitch -n -M -j resource |
运行可能会引起滚动重启的命令。
可能会引起滚动重启的 hadbm 子命令包括: set、restart 和 addnodes。
重新启用故障监视器。
scswitch -e -M -j resource |
或者,禁用 HADB 资源并在执行维护命令时不在 Sun Cluster 的控制下启动 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 数据库。 对于此过程的每一次重复,探测执行以下步骤:
首先,探测将休眠 Thorough_Probe_Interval 秒。
通过执行 hadbm status 和 hadbm status --nodes 命令,探测检索 HADB 数据库和 HADB 节点的当前状态。
如果数据库不在运行,探测将检查本地 Sun Cluster 节点上是否存在与该数据库对应的 HADB stopstate 文件。 在启动数据库时,hadbm start 命令将使用 stopstate 文件来确定节点的角色。
如果 stopstate 文件存在,HADB 资源将检查此文件以确定是否可以启动数据库。
如果可以启动数据库,探测将启动数据库并将资源状态设置为 Online。
如果无法启动数据库,探测则将资源状态设置为 Online Degraded。
如果数据库正在运行,探测将启动被配置为在 Sun Cluster 节点上运行的 HADB 节点。
如果数据库和本地 HADB 节点都在运行,探测将资源状态设置为 Online(如果原状态为 Online Degraded)。
如果在 HADB 资源组的所有 Sun Cluster 节点中,HADB 资源处于 Online Degraded 状态的时间长于 Stop_timeout 秒,则 HADB 资源将认为无法启动该数据库。
如果 Auto_recovery 扩展特性被设置为 TRUE,则 HADB 资源将尝试恢复该数据库。
如果尝试恢复数据库,探测将执行以下步骤:
在资源组节点列表中的一个 Sun Cluster 节点上发送 hadbm clear --fast 命令。 此命令将清除数据库内容并重新初始化和重新启动数据库。
如果 hadbm clear 命令成功,将在发送 hadbm clear 命令的同一 Sun Cluster 节点上发送 Auto_recovery_command 中指定的命令。 该命令通常是包含 asadmin create-session-store 命令的脚本。 该命令也可以实现其它操作。 例如,可以向 Application Server 管理员发送邮件。
如果以上两步都成功,探测将资源状态设置为 Online。
接着从第一步开始重复操作。
可以使用 scrgadm 命令调节 Thorough_Probe_Interval 参数和 Stop_timeout 参数。 有关详细信息,请参阅《Sun Cluster 数据服务规划和管理指南(适用于 Solaris OS)》中的“标准特性”。