![]() | |
Sun Java System Application Server 7 2004Q2 Update 1 标准版和企业版安装指南 |
第 2 章
设置 HADB 前的准备工作在群集所包含的服务器上安装高可用性组件之后,您可以设置高可用性。
本章包括以下主题:
完成本章的任务之后,您可以转到 Sun Java System Application Server 管理指南以获得有关配置和管理群集、负载平衡器插件和高可用性数据库 (HADB) 的综合指导。
有关高可用性拓扑的信息,请参见 Sun Java System Application Server System Deployment Guide。
在 Windows 上设置 HADBWindows 平台上的可用 HADB 版本为 4.4.x,而 UNIX 平台上的可用版本为 4.3.x。因此,为了在 Windows 上配置和管理 HADB,对 UNIX 版本进行了一些更改。本章中的相应位置处指出了这些更改。
要设置基于 HADB 数据库的 Application Server 群集,您可以在 Windows 平台上使用 clsetup 实用程序,如使用 clsetup 中所述。本节中的示例专用于 UNIX,请务必对 Windows 平台进行适当的更改。
有关在 Windows 平台上设置和运行 HADB 的详细信息,请参见 Sun Java System Application Server 7 2004Q2 Update 1 Administration Guide 中的第 21 章“Administering High Availability on Windows”。
两个 HADB 版本之间的主要区别包括:
有关 HADB 4.4.x 中的这些和其他更改的更多信息,请参见 Sun Java System Application Server 7 2004Q2 Update 1 Administration Guide。
配置共享内存和信号本节包含有关在 UNIX 平台上为 HADB 主机配置共享内存的指导。您必须配置共享内存才能使用 HADB。
在 Solaris 上配置共享内存
- 以超级用户身份登录。
- 将以下内容添加到文件 /etc/system 中以配置共享内存:
set shmsys:shminfo_shmmax=0x80000000
set shmsys:shminfo_shmseg=20本示例将最大共享内存 shmmax 设置为 2GB(十六进制数 0x80000000),这对于大多数配置来讲已经足够了。
shmsys:shminfo_shmmax 的值按每 256 MB 对应于 0x10000000 来计算,应将其设置为与主机内存的大小相等。要确定主机的内存大小,请运行此命令:
prtconf | grep Memory
然后将得到的值代入到以下公式中:
((<host> MB / 256 MB) * 0x10000000)
对于信号:
您的 /etc/system 文件可能已经包含 semmni、semmns 和 semmnu 条目。例如:
set semsys:seminfo_semmni=10
set semsys:seminfo_semmns=60
set semsys:seminfo_semmnu=30如果这些条目已存在,请在这些值上分别加上 16、128 和 1000,如下所示:
set semsys:seminfo_semmni=26
set semsys:seminfo_semmns=188
set semsys:seminfo_semmnu=1030如果 /etc/system 文件不包含上述条目,则请在该文件的末尾添加以下条目:
set semsys:seminfo_semmni=16
set semsys:seminfo_semmns=128
set semsys:seminfo_semmnu=1000这足以满足在计算机上运行 16 个 HADB 节点的要求。
- 重新引导计算机,使共享内存设置生效。
如果要运行 16 个以上的 HADB 节点,请参见 Sun Java System Performance Tuning Guide 中有关 HADB 的章节。
在 Linux 上配置共享内存
- 要将共享内存增加到 512 MB,请运行以下命令:
echo 536870912 > /proc/sys/kernel/shmmax
echo 536870912 > /proc/sys/kernel/shmallshmmax 是单个共享内存段的最大大小,而 shmall 是要共享的共享内存的总大小。
对于使用缺省值的标准 HADB 节点,该值已足够。如果需要更多的内存,则必须增加这个值。
- 可以在 proc 文件系统中更改 shmmax 的缺省共享内存限制,而无需重新启动计算机。另外,还可以使用 sysctl(8) 来更改它。
- 要永久更改这些设置,请将以下代码行添加到 /etc/sysctl.conf 文件中。引导主机的过程中将使用该文件。
echo kernel.shmmax=536870912 /etc/sysctl.conf
有关 HADB 节点的介绍,请参见 Sun Java System Application Server Administration Guide 的“Administering the High-Availability Database (Enterprise Edition)”中的“Configuring the HADB”一节。另外,请参见 Sun Java System Application Server Performance Tuning Guide 以了解有关压力测试和性能测试的信息。
设置主机通信
要实现远程访问以进行 HADB 管理,必须配置将成为 HADB 服务器和 HADB 管理客户机的所有计算机,以使用 Remote Shell (RSH) 或 Secured Shell (OpenSSH/SSH)。仅 UNIX 平台需要执行此步骤。
RSH 只是简单的远程 Shell 命令,不具有任何安全功能。SSH 通信通道则通过对 HADB 节点之间传送的数据进行加密来提供某种程度的安全保证。
注
对于 Solaris 9 和 10,建议使用 SSH 的缺省安装。
在 Solaris 8 上,缺省情况下不安装 SSH。如果您的 Solaris 8 系统中没有安装 SSH,请按照在 Solaris 8 中安装 SSH 中的指导安装 SSH。
如果要使用 SSH 但尚未配置它,则不能使用 hadbm 命令。请参阅 SSH 要求和限制来验证是否能识别 SSH。
本节包含以下指导:
设置 RSH 以进行 HADB 管理
如果要使用 RSH 而不是 SSH,必须使用 set managementProtocol 选项明确指定 RSH。有关在 clresource.conf 文件中设置该参数的指导,请参阅表 2-3。
因为 SSH 比 RSH 更安全,所以强烈建议 hadbm create 命令使用 SSH 作为缺省 Shell。
实现 RSH 的步骤:
- 以超级用户身份登录。
- 向 /etc/securetty 文件附加以下条目(仅对于 Linux 平台):
rexec
rsh
rlogin
pts/0
pts/1另外,请在 /etc/xinetd.d/ 下更改文件 rexec、rlogin 和 rsh 中的 disable=no。
- 编辑文件 /etc/hosts 以包括与所有选定 HADB 主机对应的条目,包括本地主机的主机名。使用 localhost 格式。例如:
computer1.xbay.company.com
computer99.zmtn.company.com- 将此文件附加到所有选定安装主机的 /etc/hosts 文件中。
- 在 HADB 用户的 $HOME 目录中创建 .rhosts 文件。
- 验证是否已将用户组和其他用户的权限设置为只读。
添加每个 HADB 主机的主机名(包括本地主机名),后跟数据库用户的用户名。例如,如果数据库用户为 Jon,则主机名为:
computer1.xbay.company.com Jon
computer99.zmtn.company.com Jon
mine456.red.mycompany.com Jon- 将此文件附加到每个 HADB 主机的 .rhosts 文件。
- 检查每台主机的主机通信。例如:
rsh computer99.zmtn.company.com uname -a
将从另一台主机返回身份。
设置 SSH 以进行 HADB 管理
因为 SSH 较 RSH 更安全,所以强烈建议 hadbm create 命令使用 SSH 作为缺省 Shell。
本节包含以下主题:
SSH 要求和限制
注
缺省情况下 Solaris 9 系统中已安装 SSH,但在 Solaris 8 中,缺省情况下不安装 SSH。要在 Solaris 8 中安装 SSH,请参见在 Solaris 8 中安装 SSH。
在设置 SSH 的过程中,可能需要采取措施来满足以下任何或所有要求:
/usr/bin
- 如果系统中存在这些二进制文件,但没有存储在此位置中,则需要建立从 /usr/bin 到实际位置的符号链接。
- 如果使用的是 Solaris 8 系统,由于缺省情况下不安装 SSH 二进制文件,所以可能不存在 SSH 二进制文件。这种情况下,请参见在 Solaris 8 中安装 SSH 中的指导。
- 支持仅测试了对 SunSSH 和 OpenSSH 的支持。如果您使用的是其他版本的 SSH,最好参阅该产品的文档中的设置指导以确保 SSH 通信正常工作。
- OpenSSH 客户机和守护程序如果所运行的环境使用 OpenSSH 客户机和守护程序,应按如下所示命名密钥文件:
~/.ssh/authorized_keys2 或 ~/.ssh/authorized_keys。
- 以超级用户身份运行如果以超级用户身份运行 HADB 管理客户机,请确保在所有计算机上的 sshd 配置 (/etc/ssh/sshd_config) 中,已将 PermitRootLogin 参数设置为 yes。
注
缺省情况下,Sun SSH 不允许以超级用户身份登录,该参数被设置为 no。如果更改了 sshd 配置,则必须重新启动 sshd。键入以下命令以重新启动服务:
/etc/init.d/sshd stop/start
- 不支持 SSH 协议(版本 2)如果 SSH 客户机和守护程序不支持 SSH 协议(版本 2),您将需要运行无选项的 ssh-keygen。密钥文件将被命名为 identity.pub,而不是 id_dsa.pub。必须将此文件附加到 ~/.ssh/authorized_keys 中。
- 混合 SSH 环境如果在混合的 SSH 环境中进行操作,您将需要创建 ~/.ssh/authorized_keys2 和 ~/.ssh/authorized_keys 文件,后者可能同时包含版本 1 和版本 2 的密钥。
- 相同位置如果 Sun Java System Application Server 和 HADB 位于同一台计算机上,您将需要执行以下命令之一,从而在 .ssh 目录下创建 known_hosts 文件:
ssh localhost
或
ssh hostname
在 Solaris 8 中安装 SSH
缺省情况下,Solaris 8 系统中没有安装 ssh 和 scp 二进制文件。如果 Solaris 8 系统中没有这些二进制文件,请执行以下这些步骤:
- 转至以下站点:
http://www.sunfreeware.com/openssh8.html
在此站点上,您可能会看到类似于以下内容的消息:
===PLEASE NOTE!!!............ make a note of some of the mirror sites so that if the servers are down, you can still download from a mirror site.
如果您看到类似的消息,请尝试访问 FTP/镜像站点链接中列出的多个镜像站点之一。例如:
http://sunfreeware.secsup.org/
- 在此站点中,按照 Installation Steps 中的指导来下载和安装所有必要的 OpenSSH 软件包和修补程序。
现在可以配置 SSH
配置 SSH
要在已经安装了 ssh 和 scp 二进制文件的系统上设置 SSH,请执行以下某一小节中的步骤:
在未装载主目录的系统中设置 SSH
要在未装载主目录的系统中实现 SSH,请执行以下步骤:
- 验证是否已理解并满足了在 SSH 要求和限制中指定的 SSH 要求。
- 以 HADB 用户的身份登录主机。
- 通过运行以下命令生成密钥:
ssh-keygen -t dsa
对于 SSH1 和 OpenSSH/1,通常不需要为 ssh-keygen 命令指定任何参数。
- 对于随后出现的三个提示,按 Enter 键接受缺省选项。
- 对群集中的所有计算机重复步骤 1、2 和 3。
~/.ssh 目录下的 identity.pub 文件或 id_dsa.pub 文件(取决于使用 SSH 版本 1 还是 SSH 版本 2)包含公共密钥。要连接到计算机而不被询问口令,必须将此文件的内容附加到所有计算机中的 authorized_keys 文件中。
- 要建立登录身份,请转至用户目录:
~/.ssh。
对于 SSH1、OpenSSH/1:
- 将 authorized_keys 文件复制到所有 HADB 计算机的 ~/.ssh 目录下。
- 验证用户组和其他用户对 .ssh 目录(HADB 用户的主目录)和 .ssh/authorized_keys 文件不具有写权限。
如果需要,请禁用这些用户组/其他用户的写权限,如下所示:
chmod og-w ~/.ssh
chmod og-w ~/.ssh/authorized_keys
chmod og-w $HOME使用 HADB 用户的主目录替换 $HOME。例如:
chmod og-w ~/johnsmith
注
即便只是向用户组/其他用户授予了 ~/.ssh 目录中文件的读权限,也不能建立 SSH 自动登录身份。这种情况下,如果尝试 ssh machine_name,系统将报告权限不正确并询问口令。也就是说,如果要启用自动登录,最好不要向用户组/其他用户授予任何权限。
- 要启用无需任何用户输入的登录,则在最初使用 SSH 时(在安装 SSH 环境之后),需要在 /.ssh 目录下的 known_hosts 文件中添加节点计算机名,如下所示:
- 要验证是否已正确设置了 SSH,请在尝试运行 HADB 的管理工具之前登录群集中的每台主机。
您将自动登录而无需输入口令。
在已装载主目录的系统中设置 SSH
要在已装载主目录的系统中实现 SSH,请执行以下这些步骤:
- 验证是否满足在 SSH 要求和限制中指定的 SSH 要求。
- 以 HADB 用户的身份登录主机。
- 通过运行以下命令生成密钥:
ssh-keygen -t dsa
对于 SSH1 和 OpenSSH/1,通常不需要为 ssh-keygen 命令指定任何参数。
- 对于随后出现的三个提示,按 Enter 键接受缺省选项。
~/.ssh 目录下的 identity.pub 文件或 id_dsa.pub 文件(取决于使用 SSH 版本 1 还是 SSH 版本 2)包含公共密钥。要连接到计算机而不被询问口令,必须将此文件的内容附加到所有计算机中的 authorized_keys2 文件中。这可以通过以下步骤实现:
- 要建立登录身份,请转至用户目录:
~/.ssh。
对于 SSH1、OpenSSH/1复制 identity.pub 文件,然后将其命名为 authorized_keys。
对于 OpenSSH/2复制 id_dsa.pub 文件,然后将其命名为 authorized_keys。
- 验证用户组和其他用户对 .ssh 目录和 .ssh/authorized_keys 文件不具有写权限。
如有必要,可以禁用这些用户组/其他用户的写权限,如下所示:
chmod og-w ~/.ssh
chmod og-w ~/.ssh/authorized_keys
chmod og-w /$HOME使用 HADB 用户的主目录替换 $HOME。例如:
chmod og-w ~/johnsmith。
注
即便只是向用户组/其他用户授予了 ~/.ssh 目录中文件的读权限,也不能建立 SSH 自动登录身份。在这种情况下,如果尝试 ssh machine_name,系统将报告权限不正确并询问口令。也就是说,如果要启用自动登录,最好不要向用户组/其他用户授予任何权限。
- 要启用无需任何用户输入的登录,则在最初使用 SSH 时(在安装 SSH 环境之后),需要在 /.ssh 目录下的 known_hosts 文件中添加节点计算机名:
ssh machine_name
当询问您是否向文件 known_hosts 中添加 machine_name 时,选择“是”。现在,无需任何输入就可以登录。
- 要验证是否已正确设置了 SSH,请在尝试运行 HADB 的管理工具之前登录群集中的每台主机。
您将自动登录而无需输入口令。
在 Solaris 上将 HADB 与 Veritas 文件系统一起使用
在 Solaris 上使用 Veritas 文件系统时,可能会在 HADB 历史文件中看到消息 WRN:Direct disk I/O mapping failed。
此消息指出:HADB 无法打开用于数据和日志设备的直接 I/O。直接 I/O 可以减少写入磁盘页面的 CPU 耗时,从而提高性能,还可以降低管理操作系统中的脏数据页面的系统开销。
要将直接 I/O 与 Veritas 一起使用,应在以选项 mincache=direct 进行安装的文件系统上创建数据和日志设备。请注意,此选项将应用到在该文件系统上创建的所有文件。有关详细信息,请参见命令 mount_vxfs(1M)。
另一种方法是使用 Veritas Quick I/O 工具。实际上,此产品使对文件系统的文件执行原始 I/O 成为可能。有关详细信息,请参见 Veritas 文档 VERITAS File System 4.0 Administrator's Guide for Solaris。
在 Linux 上将 HADB 与 ext 文件系统一起使用
HADB 不支持 Red Hat Advanced Server 2.1 上的 ext3 文件系统,而仅支持 ext2。HADB 支持 Red Hat Advanced Server 3.0 上的 ext3 文件系统。
设置用户环境
在设置了主机通信之后,可从 install_dir/SUNWhadb/4/bin 目录位置运行 hadbm 命令,如下所示:
但是,如果将本地环境设置为可以从任何位置使用高可用性管理客户机命令,则更为方便。要进行此设置,请执行以下步骤。
- 设置 PATH 变量:
setenv PATH ${PATH}:install_dir/bin:install_dir/SUNWhadb/4/bin
- 通过运行以下命令验证 PATH 设置是否正确:
which asadmin
which hadbm- 如果安装了多个版本的 Java,请确保 JAVA_HOME 环境访问的是用于企业版的 1.4.2_05 版 JDK。
setenv JAVA_HOME java_install_dir
setenv PATH ${PATH}:${JAVA_HOME}/bin- 如果 HADB 设备文件和日志文件不在缺省位置 (appserver_install_dir/SUNWhadb/4) 中,请使用以下 hadbm 命令找到这些重要的文件:
hadbm get configpath
hadbm get devicepath
hadbm get historypath
hadbm get installpath备份这些命令列出的位置。
为非超级用户设置管理缺省情况下,在初始安装或设置 Sun Java System Application Server 时,仅有超级用户对为 Sun Java System Application Server 创建的文件和路径拥有写权限。对于要创建或管理 Sun Java System Application Server 的非超级用户,必须将对相关文件的写权限授予该特定用户,或授予该用户所属的用户组。涉及的文件(及其缺省位置)包括:
可以按照以下过程中的介绍创建一个管理 Sun Java System Application Server 的用户组。(也可以向特定用户授予权限和所有权。)
要创建 Sun Java System Application Server 用户组并对安装根目录设置操权限,请对涉及到的每个文件重复以下步骤:
- 以超级用户身份登录。
- 从命令提示符创建 Sun Java System Application Server 用户组。例如:
# groupadd sjsasuser
可以在命令行中键入 groupadd 来查看正确的用法。
- 将每个涉及到的文件的用户组所有权更改为新建的用户组。例如:
chgrp -R sjsasuser install_config_dir/cl*.conf
- 为新建的用户组设置写权限:
chmod -R g+rw install_config_dir/cl*.conf
- 对每个涉及到的文件重复步骤 3 和步骤 4。
- 使新建的用户组可以执行 clsetup 和 cladmin 命令。例如:
chmod -R g+x install_dir/bin/cl*
- 使用 --sysuser 选项删除并重新创建缺省域 (domain1)。sysuser 也必须属于新建的用户组。例如:
asadmin delete-domain domain1
asadmin create-domain --sysuser bleonard --adminport 4848 --adminuser admin --adminpassword password domain1
使用 clsetupclsetup 实用程序的作用是自动完成在典型配置中设置基本群集这一过程。clsetup 命令位于 install_dir/bin,其中 install_dir 是安装 Sun Java System Application Server 软件的目录。
clsetup 和 cladmin 是与 Sun Java System Application Server 捆绑在一起的实用程序。
注
cladmin 命令用于简化在完成所有安装和配置任务之后,对群集进行配置和管理的过程。有关创建 HADB 和使用 cladmin 命令的指导,请参阅 Sun Java System Application Server Administration Guide。
本节介绍了以下主题:
clsetup 的工作原理
clsetup 实用程序是一组 Sun Java System Application Server 命令,这些命令使您可以基于预先填充的输入文件自动配置群集。在设置群集的过程中,将创建 HADB。但是,必须使用 hadbm 命令设置工作群集,如 Sun Java System Application Server 管理指南中所述。
本节包括以下主题:
输入文件的工作原理
clsetup 实用程序使用三个输入文件来配置群集:
- clinstance.conf — 已使用有关应用服务器实例 server1 和 server2 的信息预先填充此文件。请参阅 clinstance.conf 文件以获得关于此文件内容的信息。
- clpassword.conf — 已使用 domain1 的 Admin Server 口令预先填充此文件,该口令是安装 Sun Java System Application Server 7.1 企业版软件时提供的。请参阅 clpassword.conf 文件以获得关于此文件内容的信息。
- clresource.conf — 已使用有关以下这些群集资源的信息预先填充此文件:HADB、JDBC 连接池、JDBC 资源以及会话存储和持久性。请参阅 clresource.conf 文件以获得关于此文件内容的信息。
使用预先配置好的 clsetup 配置参数设置典型群集配置。要支持其他配置,请编辑任何或所有配置文件。
clsetup 完成的任务
通过使用在 clsetup 输入文件中预先填充的值,clsetup 实用程序命令将:
- 在名为 Domain1 的缺省域中创建名为 Server2 的新服务器实例。Server2 的 HTTP 端口号是安装过程中指定的 Server1 的 HTTP 端口号的下一个连续号码。例如,如果安装过程中为 Server1 指定的端口号为 80,则 Server2 的端口号为 81。
- 在本地计算机中创建名为 hadb 的 HADB,其中包含两个节点。端口基准为 15200,并且数据库口令为 password。
- 在 HADB 中创建用于存储会话信息的 HADB 表。
- 在 clinstance.conf 文件列出的所有实例(Server1、Server2)中创建名为 appservCPL 的连接池。
- 在 clinstance.conf 文件列出的所有实例(server1、server2)中,创建名为 jdbc/hastore 的 JDBC 资源。
- 在 clinstance.conf 文件列出的所有实例(Server1、Server2)中配置会话持久性信息。
- 在 clinstance.conf 文件列出的所有实例(Server1、Server2)中配置 RMI/IIOP 群集,从而启用 RMI/IIOP 故障切换。
- 在 clinstance.conf 文件列出的所有实例(Server1、Server2)中配置 SFSB 故障切换。
- 在 clinstance.conf 文件列出的所有实例(Server1、Server2)中启用高可用性。
clsetup 使用的命令
clsetup 实用程序使用多个 hadbm 和 asadmin 命令来设置群集。在表 2-1 中,左侧列中介绍了 clsetup 执行的任务,右侧列中列出了用于完成该任务的命令。
clsetup 要求和限制
以下要求和限制适用于 clsetup 实用程序:
- 在属于群集的所有计算机上,安装路径、设备路径、配置路径等必须相同。
- 要使用 clsetup,必须能够在本地计算机上使用 asadmin 和 hadbm 实用程序。clsetup 只能在安装了以下组件的计算机上运行:
- 使用 clsetup 之前,必须按照配置共享内存和信号中的介绍配置 UNIX 平台的共享内存。clsetup 实用程序不会设置任何共享内存值。
- 使用 clsetup 实用程序之前,必须按照设置主机通信中的介绍,设置用于 UNIX 平台上的 SSH 或 RSH 的 HADB 群集主机通信。
- 如果您使用的是 RSH(它不是缺省安装),请在文件 clresource.conf 中取消注释以下行:
- 如果您将 Application Server 和 HADB 安装到使用 SSH 的同一计算机上,则在 .ssh 目录下必须存在 known_hosts 文件。如果此文件不存在,则在使用 clsetup 之前需要运行命令 ssh localhost 或 ssh hostname。
- 在运行 clsetup 之前,需要启动群集内所有 Sun Java System Application Server 实例的 Admin Server。
- 群集内所有域的管理员口令必须相同。
- 如果要处理的实体(HADB 节点和 Application Server 实例)已存在,clsetup 不会删除或重新配置它们,而是分别跳过这些实体的配置步骤。
- 群集中所有实例的输入文件中指定的值必须相同。clsetup 无法使用不同值来设置实例。例如,clsetup 不能为每个实例创建具有不同设置的 JDBC 连接池。
- clsetup 不执行任何 inetd 配置,它所创建的 HADB 不具有 inetd 设置。Sun Java System Application Server 管理指南中包含了有关执行 inetd 配置的指导。
- shell 初始化文件中的主机名 — 如果 .cshrc 或 .login 文件中的主机名包括提示符,clsetup 可能会挂起。删除任何远程调用命令中的任何提示符和多余的输出。例如,在 hostB 中运行命令 hostname 将输出不带提示符的 hostB。
- 要以非超级用户的身份运行 clsetup,请按照为非超级用户设置管理中介绍的步骤进行操作。
编辑 clsetup 输入文件
在安装过程中,会将 clsetup 命令所需的输入文件安装在配置安装目录下。在 UNIX 上,缺省目录为 /etc/opt/SUNWappserver7;在 Windows 上,缺省目录为 c:\Sun\AppServer7\config\。这些输入文件已使用设置典型配置所使用的值预先进行了填充,您可以根据配置需要编辑它们。
本节介绍了以下文件:
clinstance.conf 文件
要使 clsetup 正常工作,必须在 clinstance.conf 文件中定义群集内的所有应用服务器实例。在安装过程中,将创建 clinstance.conf 文件,其中包含两个实例的条目。如果要向群集中添加更多实例,则必须添加有关这些附加实例的信息,如下所示:
群集内的每个实例都需要一组条目。以井号 (#) 开头的所有行均作为注释处理。
注
这些条目在 clinstance.conf 文件中的排列顺序非常重要,您不能更改此处指定的顺序。如果添加多个应用服务器实例的信息,这些实例的条目必须以相同的顺序排列。注释可以添加到文件中的任何位置。
表 2-2 提供有关文件 clinstance.conf 中的条目的信息。左侧的列包含参数名称,中间的列定义参数,而右侧的列包含缺省值。
示例 clinstance.conf 文件
此 clinstance.conf 文件包含有关两个实例的信息。
#Instance 1
instancename server1
user admin
host localhost
port 4848
domain domain1
instanceport 80#Instance 2
instancename server2
user admin
host localhost
port 4848
domain domain1
instanceport 81clpassword.conf 文件
运行 clsetup 时,它将启动 asadmin 命令,此命令需要安装过程中在 clpassword.conf 文件中指定的 Admin Server 口令。
clpassword.conf 文件的格式如下:
其中 password 是 Admin Server 口令。
clpassword.conf 文件预设权限 0600,这样只有超级用户可以访问该文件。
clresource.conf 文件
在安装过程中,将创建用于设置典型配置的 clresource.conf 文件。文件 clresource.conf 包含群集内以下资源的信息:
在 UNIX 平台上,clresource.conf 文件的预设权限为 0600,这样只有超级用户才能访问该文件。
注
在运行 clsetup 之前,可修改 clresource.conf 文件中指定的值,以便进行优化或设置其他配置。如果编辑这些值,请确保这些值的顺序和文件的格式保持不变。
以井号 (#) 开头的所有行均作为注释处理。
下表介绍了 clresource.conf 文件的参数。左侧的列包含参数名称,中间的列定义参数,而右侧的列包含缺省值。
表 2-3 介绍 clresource.conf 文件中的 HADB 参数。
数据库名称是在 clresource.conf 文件的 [HADBINFO] 一节的最后指定的。
表 2-4 介绍 clresource.conf 文件中的会话存储参数。
表 2-4 clresource.conf 文件中的会话存储参数
参数
定义
缺省值
storeurl
HADB 存储的 URL
REPLACEURL
注释:在运行时,该值将被实际的 URL 替换。
storeuser
访问会话存储的用户
appservusr
注释:必须与表 2-5 中的 username 特性匹配。
storepassword
storeuser 的口令
密码
注释:必须与表 2-5 中的 password 特性匹配。
dbsystempassword
HADB 系统用户的口令
密码
adminpassword
管理域的管理员口令。如果在 hadbm createdomain 或 hadbm create 中使用 adminpassword 选项,那么每次使用任何 hadbm 命令时都必须输入此口令。
(仅适用于 Windows)
无
adminpasswordfile
使用 adminpasswordfile 选项可以文件路径的形式提供口令,该文件中包含该口令
(仅适用于 Windows)
无
no-adminauthentication
--no-adminauthentication 选项允许管理员使用所有 hadbm 命令,而无需提供管理员口令。
(仅适用于 Windows)
无
表 2-5 介绍 clresource.conf 文件中的 JDBC 连接池参数。
连接池名称是在 clresource.conf 文件的 [JDBC_CONNECTION_POOL] 一节的最后指定的。
表 2-6 介绍 clresource.conf 文件中的 JDBC 资源参数。
表 2-6 clresource.conf 文件中的 JDBC 资源参数
参数
定义
缺省值
connectionpoolid
连接池的名称
appservCPL
注释:连接池名称是在表 2-5 中指定的。
JDBC 资源名称是在 clresource.conf 文件的 [JDBC_RESOURCE] 一节的最后定义的。
表 2-7 介绍 clresource.conf 文件中的会话持久性参数。
表 2-7 clresource.conf 文件中的会话持久性参数
参数
定义
缺省值
type
会话持久性类型
ha
frequency
会话频率
web-method
scope
会话范围
session
store
会话存储
jdbc/hastore
注释:存储名称是在 [JDBC_RESOURCE] 一节的最后定义的。
表 2-8 介绍 clresource.conf 文件中的状态会话 Bean 参数。
表 2-9 介绍 clresource.conf 文件中的 RMI/IIOP 故障转移参数。
表 2-10 介绍 clresource.conf 文件中的群集标识参数。
示例 clresource.conf 文件(在 UNIX 上)
[HADBINFO]
historypath /var/tmp
devicepath /opt/SUNWappserver7/SUNWhadb/4
datadevices 1
portbase 15200
spares 0
#set managementProtocol=rsh
inetd false
inetdsetupdir /tmp
devicesize 512
dbpassword password
hosts machine1,machine1
hadb[SESSION_STORE]
storeurl REPLACEURL
storeuser appservusr
storepassword password
dbsystempassword password[JDBC_CONNECTION_POOL]
steadypoolsize 8
maxpoolsize 32
datasourceclassname com.sun.hadb.jdbc.ds.HadbDataSource
isolationlevel repeatable-read
validationmethod meta-data
property username=appservusr:password=password:cacheDataBaseMetaData=false:eliminateRedundantEndTransaction=true:serverList=REPLACEURLappservCPL
[JDBC_RESOURCE]
connectionpoolid appservCPL
jdbc/hastore[SESSION_PERSISTENCE]
type ha
frequency web-method
scope session
store jdbc/hastore示例 clresource.conf 文件(在 Windows 上)
[HADBINFO]
package V4.4
historypath REPLACEDIR
devicepath C:\Sun\AppServer7\SUNWhadb\4.4.0-12
datadevices 1
portbase 15200
spares 0
#set LogbufferSize=32,DataBufferPoolSize=128
devicesize 208
dbpassword password
hosts machine1,machine2
adminpassword password
hadb
[SESSION_STORE]
storeurl EPLACEURL
storeuser appservusr
storepassword password
dbsystempassword password
[JDBC_CONNECTION_POOL]
steadypoolsize 8
maxpoolsize 2
datasourceclassname com.sun.hadb.jdbc.ds.HadbDataSource
isolationlevel repeatable-read
--isisolationguaranteed=true
validationmethod meta-data
property username=appservusr:password=password:cacheDataBaseMetaData=false:eliminateRedundantEndTransaction=true:serverList=REPLACEURL
appservCPL
[JDBC_RESOURCE]
connectionpoolid appservCPL
jdbc/hastore
[SESSION_PERSISTENCE]
type ha
frequency web-method
scope session
store jdbc/hastore
[EJB_FAILOVER]
sfsb true
[RMI_IIOP_FAILOVER]
rmi_iiop true
[CLUSTER_ID]
cluster_id cluster1
运行 clsetup
运行 clsetup 的语法如下:
如果没有指定参数,clsetup 采用以下缺省值:
您可以提供自定义输入文件的位置来覆盖这些参数。例如:
提供自定义输入文件时,请遵循输入文件中要求的格式。有关此操作的信息,请参见编辑 clsetup 输入文件。
运行 clsetup 的步骤:
- 验证是否已满足了在 clsetup 要求和限制中介绍的要求。
注
如果要以非超级用户的身份运行 clsetup,请参见为非超级用户设置管理来进行此设置。
- 验证输入文件是否已包含设置群集所需的信息。如有必要,请按照编辑 clsetup 输入文件中的指导编辑输入文件。
- 如果您使用的是 RSH,请编辑文件 clresource.conf 来取消注释以下行(删除 # 号):#set managementProtocol
- 转至 Sun Java System Application Server 安装 /bin 目录。
- 调用 clsetup 命令:
在 Unix 上:./clsetup
在 Windows 上:clsetup.bat
clsetup 命令在冗余模式下运行。在运行各种命令时,屏幕上将同步显示这些命令,并将输出重定向到日志文件 /var/tmp/clsetup.log(在 UNIX 上)或者缺省的 Windows temp 目录(在 Windows 上)中。
如果发生严重错误,配置将停止并且将错误记录到日志文件中。如果日志文件已存在,输出将被附加到现有日志文件中。
如果要处理的实体(HADB 节点和 Application Server 实例)已存在,clsetup 不会删除或重新配置它们,而是分别跳过这些实体的配置步骤。此类型的事件将被记录到日志文件中。
- clsetup 完成配置后,可以在每次运行之后查看日志文件以检查设置。
- 配置完成后,clsetup 返回表 2-11 中介绍的退出代码:
clsetup 的清除步骤
运行 clsetup 之后,将在日志文件 /var/tmp/clsetup.log 中记录发生的错误。每次运行 clsetup 命令之后,请检查日志文件并纠正报告的所有严重错误(例如,无法创建新实例)。
您可以撤消全部或部分配置,如下所示:
- 要删除 Application Server 实例,请运行:asadmin delete-instance instance_name
- 要删除 HADB,请运行:
- 要清除会话存储,请运行:cladmin clear-session-store --storeurl URL_information --storeuser storeUsername --storepassword store_user_name
- 要删除 JDBC 连接池,请运行:asadmin delete-jdbc-connection-pool connectionpool_name
- 要删除 JDBC 资源,请运行:cladmin delete-jdbc-resource JDBCresource_Name
请参见手册页以获得以上各个命令的详细示例。现在,您可以转到 Sun Java System Application Server 管理指南来获得有关配置 HADB 和管理群集、负载平衡插件和 HADB 的指导。
时间同步强烈建议使运行 HADB 的主机上的时钟同步,因为 HADB 使用基于系统时钟的时间戳进行调试操作以及控制内部事件。在历史记录文件中记录事件时,使用时间戳作为前缀。由于 HADB 是分布式系统,所以在进行错误诊断时,系统将分析所有 HADB 节点的历史记录文件。HADB 还在内部使用系统时钟来管理与时间相关的事件,例如超时。
建议您不要在 HADB 系统处于运行状态时调整其系统时钟。如果您在 HADB 处于运行状态时调整其系统时钟,HADB 通常也能够进行相应处理,但需要注意以下几点:
要使时钟同步,举例来说,可以在 Solaris 中使用“xntpd”(网络时间协议守护程序);在 Linux 中使用“ntpd”。