Sun Java System Application Server Enterprise Edition 8.1 2005Q2 高可用性管理指南

第 2 章 安装和设置高可用性数据库

本节包含以下主题:

高可用性数据库概述

本节介绍了高可用性数据库 (HADB) 以及如何设置和配置 HADB 以与 Application Server 一起使用。

本节包括以下主题:

HADB 和 Application Server

HADB 是可独立于应用程序服务器层运行和管理的可水平伸缩的数据库。它旨在通过负载平衡、故障转移和状态恢复等功能支持高达 99.999% 的服务和数据可用性。

Application Server 使用 HADB 来存储 HTTP 和有状态会话 Bean (stateful session bean, SFSB) 的会话数据。如果没有会话持久性机制,则 Web 或 EJB 容器进行故障转移时,HTTP 或 SFSB 会话状态数据将丢失。

Application Server 不负责状态管理,这有很大的优势。Application Server 实例在其生命周期内作为可伸缩和高性能的 Java™ 2 Platform, Enterprise Edition(J2EE™ 平台)容器运行,并将状态复制委托给外部高可用性状态服务。由于采用这种松散耦合的体系结构,因此可以轻松地向群集中添加应用程序服务器实例或从群集中删除实例。您可以单独伸缩 HADB 状态复制服务以获得最佳的可用性和性能。

HADB 服务器体系结构

高可用性指无论出现由于升级而引起的预期故障,还是出现由于硬件或软件故障所导致的意外故障时,系统都具有可用性。HADB 基于简单数据模型和冗余、可伸缩和高性能技术。在高性能企业应用程序服务器环境中,HADB 为实现各种类型的会话状态持久性提供了理想的平台。

下图显示了具有四个活动节点和两个备用节点的数据库的体系结构。节点 0 和 1 是镜像节点对,节点 2 和 3 也是镜像节点对。

图 2–1 HADB 体系结构

HADB 体系结构

HADB 通过对数据进行分段和复制来实现数据的高可用性。将数据库中所有的表进行分区,以创建大小大致相同的子集(称之为段)。分段基于散列功能,该功能在数据库节点之间对数据进行平均分布。每个段存储两次,一次在数据库中,另一次在镜像节点中。这确保数据具有容错和快速恢复功能。此外,如果一个节点出现故障或关闭,则备用节点可以接管,直至发生故障的节点再次处于活动状态。

HADB 节点被组织为两个数据冗余单元 (DRU),这两个单元互为镜像。每个 DRU 包含半数活动节点和备用节点,并包含一个完整的数据副本。为确保具有容错功能,支持一个 DRU 的计算机对于电源(建议使用不间断电源设备)、处理部件和存储设备必须完全自支持。如果一个 DRU 发生电源故障,另一个 DRU 中的节点可以继续处理请求,直至电源恢复正常。

如果不使用会话持久性机制,当一个 Web 或 EJB 容器故障转移到其他容器时,HTTP 或 SFSB 会话状态(包括已钝化的会话状态)将丢失。将 HADB 用于会话持久性可避免发生这种情况。HADB 在单独但紧密集成的持久性存储层中存储和检索状态信息。

会话数据被删除时,HADB 将收回空间。HADB 将会话数据记录置于固定大小的块中。块中的所有记录均被删除时,块将被释放。可以随机删除块中的记录,这样将使块中产生空洞。在将新记录插入到块中并需要连续的空间时,将删除空洞,从而使块更加紧凑。

以上是体系结构的简短摘要。有关更多信息,请参见《Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Deployment Planning Guide》

HADB 节点

数据库节点包含一组进程、共享内存的专用区域和一个或多个辅助存储设备。数据库存储、更新和检索会话数据。每个节点都有一个镜像节点,因此节点成对出现。此外,为了获得最大限度的可用性,还包含两个或更多备用节点(每个 DRU 中一个),这样如果节点出现故障,在修复出现故障的节点的过程中备用节点可以接管。

有关可供选择的节点拓扑的说明,请参见《Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Deployment Planning Guide》中的第 3  章 “Selecting a Topology”

新增功能和改进

随 Sun Java System Application Server Enterprise Edition 8.1 一起提供的 HADB 的版本具有很多新增功能和改进。

通过更改管理系统的基本组件,HADB 管理得以改进。旧的 hadbm 接口功能经过细微修改得以维护。这些更改同时消除了对 SSH/RSH 的依赖性。

管理代理服务器进程 (ma) 组成一个域并将数据库配置存储在系统信息库中。系统信息库的信息分布于所有代理之间。

以下主题提供了更多详细信息:

常规改进

此 HADB 版本包含以下常规改进:

具体更改

此 HADB 版本包括对先前版本的以下更改。

使用 HADB 的用户支持

在就有关 HADB 问题向 Sun 用户支持致电之前,请尽可能多地收集以下信息:

设置 HADB 前的准备工作

本节包括以下主题:

先决条件

设置和配置 HADB 之前,请确保您的环境满足以下要求:

配置网络冗余

配置冗余网络后,即使单个网络出现故障,HADB 也仍然可用。您可以使用以下两种方法配置冗余网络:

设置网络多路径

设置网络多路径之前,请参阅《IP Network Multipathing Administration Guide》。

Procedure配置已使用 IP 多路径的 HADB 主机:

  1. 设置网络接口故障检测时间。

    为了使 HADB 能够正确支持多路径故障转移,网络接口故障检测时间不能超过 1 秒(1000 毫秒),此时间由 /etc/default/mpathd 中的 FAILURE_DETECTION_TIME 参数指定。如果此参数的原始值较高,请编辑文件并将此参数值更改为 1000:


    FAILURE_DETECTION_TIME=1000

    要使所作的更改生效,请使用以下命令:


    pkill -HUP in.mpathd
  2. 设置 IP 地址以用于 HADB。

    如《IP Network Multipathing Administration Guide》中所述,多路径功能涉及将物理网络接口分组为多路径接口组。在此类组中,每个物理接口均包含两个与其关联的IP 地址:

    • 用于传输数据的物理接口地址。

    • 仅供 Solaris 内部使用的测试地址。

    当您使用 hadbm create --hosts 时,请仅从多路径组指定一个物理接口地址。


示例 2–1 设置多路经

假设具有两个名为 host1 和 host2 的主机。如果它们分别具有两个物理网络接口,则将这两个接口作为一个多路径组进行设置。在每个主机上运行 ifconfig -a

host1 上的输出为:


bge0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4>
mtu 1500 index 5 inet 129.159.115.10 netmask ffffff00 broadcast 129.159.115.255 
groupname mp0

bge0:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER>
mtu 1500 index 5 inet 129.159.115.11 netmask ffffff00 broadcast 129.159.115.255

bge1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> 
mtu 1500 index 6 inet 129.159.115.12 netmask ffffff00 broadcast 129.159.115.255 
groupname mp0

bge1:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> 
mtu 1500 index 6 inet 129.159.115.13 netmask ff000000 broadcast 129.159.115.255

host2 上的输出为:


bge0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> 
mtu 1500 index 3 inet 129.159.115.20 netmask ffffff00 broadcast 129.159.115.255 
groupname mp0

bge0:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> 
mtu 1500 index 3 inet 129.159.115.21 netmask ff000000 broadcast 129.159.115.255

bge1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> 
mtu 1500 index 4 inet 129.159.115.22 netmask ffffff00 broadcast 129.159.115.255 
groupname mp0

bge1:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> 
mtu 1500 index 4 inet 129.159.115.23 netmask ff000000 broadcast 129.159.115.255

在此示例中,两个主机的物理网络接口都在 bge0bge1 之后列出。在 bge0:1bge1:1 之后列出的接口是多路径测试接口(它们在 ifconfig 输出中标记为 DEPRECATED),如同在《IP Network Multipathing Administration Guide》中所介绍的那样。

要在此环境中设置 HADB,请从每个节点选择一个物理接口地址。在此示例中,HADB 在 host1 中使用 IP 地址 129.159.115.10,在 host2 中使用 129.159.115.20。要在每台主机上使用一个数据库节点创建数据库,请使用命令 hadbm create --host。例如


hadbm create --host 129.159.115.10,129.159.115.20

要在每台主机上使用两个数据库节点创建数据库,请使用命令:


hadbm create --host 129.159.115.10,129.159.115.20,
129.159.115.10,129.159.115.20

在这两种情况下,必须使用单独的参数配置 host1 和 host2 上的代理,以指定代理所应使用的计算机的接口。因此,在 host1 上使用以下命令:


ma.server.mainternal.interfaces=129.159.115.10

在 host2 上使用以下命令:


ma.server.mainternal.interfaces=129.159.115.20

有关 ma.server.mainternal.interfaces 变量的信息,请参见配置文件


配置双网络

要启用 HADB 以允许单个网络故障,请使用 IP 多路径(如果操作系统 [例如 Solaris] 支持)。请勿在 Windows Server 2003 上将 HADB 配置为使用双网络—此操作系统在双网络配置下无法正常工作。

如果您没有将操作系统配置为使用 IP 多路径,并且已为 HADB 主机配备两个 NIC,则可以将 HADB 配置为使用双网络。对于每台主机,每个网络接口卡 (network interface card, NIC) 的 IP 地址必须位于单独的 IP 子网中。

在数据库中,所有节点均必须连接到单个网络,或者所有节点均必须连接到两个网络。


注 –

必须将子网之间的路由器配置为可以在子网之间转发 UDP 多址广播消息。


创建 HADB 数据库时,请使用 –hosts 选项来指定每个节点的两个 IP 地址或主机名:每个 NIC IP 地址一个。对于每个节点,第一个 IP 地址位于 net-0,第二个位于 net-1。 语法如下所示,其中同一节点的主机名使用加号 (+) 分隔:

--hosts=node0net0name+node0net1name
,node1net0name+node1net1name
,node2net0name+node2net1name
, ...

例如,以下变量可创建两个节点,每个节点具有两个网络接口。以下主机选项用于创建这些节点:

--hosts 10.10.116.61+10.10.124.61,10.10.116.62+10.10.124.62

因此,网络地址如下

请注意,10.10.116.6110.10.116.62 位于同一子网;10.10.124.6110.10.124.62 位于同一子网。

在此示例中,管理代理必须使用同一子网。因此,必须设置配置变量 ma.server.mainternal.interfaces,例如设置为 10.10.116.0/24。此设置对本示例中的两个代理均可使用。

配置共享内存和信号

安装 HADB 之前,必须配置共享内存和信号。此过程取决于您的操作系统。

Procedure在 Solaris 上配置共享内存和信号

  1. 以 root 用户身份登录。

  2. 配置共享内存。

    shmmax 的值设置为 HADB 主机上物理内存的大小。共享内存段的最大大小必须大于 HADB 数据库缓冲池的大小。例如,对于具有 2 GB(十六进制数 0x8000000)主内存的计算机,请将以下内容添加到 /etc/system 文件:


    set shmsys:shminfo_shmmax=0x80000000
     set shmsys:shminfo_shmseg=20

    在 Solaris 9 和更高版本上,shmsys:shminfo_shmseg 是过时的属性。

    shminfo_shmmax 设置为系统的内存总数(在十六进制记数法中,所显示的值 0x80000000 表示 2 GB 内存)。


    注 –

    使用内存大小的十六进制值指定 shmsys:shminfo_shmmax 的值。要确定主机的内存,请使用以下命令:


    prtconf | grep Memory

  3. 配置信号。

    检查 /etc/system 文件以查找信号配置条目。此文件可能已包含 semmnisemmnssemmnu 条目。例如:


    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 个节点的信息,请参见《Sun Java System Application Server Enterprise Edition 8.1 2005Q1 Performance Tuning Guide》中的 HADB 一章。

  4. 重新引导计算机。

Procedure在 Linux 上配置共享内存

  1. 以 root 用户身份登录。

  2. 编辑文件 /etc/sysctl.conf

  3. 设置 kernel.shmaxkernel.shmall 参数。

    kernel.shmax 参数定义了共享内存段的最大大小(以字节为单位)。kernel.shmall 参数设置了在系统上可以一次使用的共享内存的总数(以页为单位)。将这两个参数的值设为计算机上的物理内存量。请以十进制字节数指定该值。例如,对于具有 512 MB 物理内存的计算机:


    kernel.shmmax=536870912
     kernel.shmall=536870912
  4. 重新引导计算机。使用以下命令:

    sync; sync; reboot

适用于 Windows 的过程

Windows 并不需要任何特殊的系统设置。但是,如果要使用现有 J2SE 安装,请将 JAVA_HOME 环境变量设置为安装 J2SE 所在的位置。

同步系统时钟

必须使 HADB 主机上的时钟同步,因为 HADB 使用基于系统时钟的时间戳。HADB 使用系统时钟管理超时并为记录到历史文件的事件标上时间戳。由于 HADB 是分布式系统,因此对于故障排除,您必须对所有历史文件一起进行分析。所以,使所有主机的时钟同步非常重要。

请勿在 HADB 系统处于运行状态时调整其系统时钟。这样做会导致操作系统或其他软件组件出现问题,而这些问题反之会导致系统出现诸如 HADB 节点挂起或重新启动等问题。将时钟调慢可能导致某些 HADB 服务器进程因时钟的调整而挂起。

要使时钟同步:

如果 HADB 检测到时钟调整超过一秒钟,则将该数据记录到节点历史文件中,例如:

NSUP INF 2003-08-26 17:46:47.975 Clock adjusted.
 Leap is +195.075046 seconds.

文件系统支持

本节介绍对某些文件系统的 HADB 限制。

Red Hat Enterprise Linux

在 Red Hat Enterprise Linux 3.0 上,HADB 支持 ext2 和 ext3 文件系统。对于 Red Hat Enterprise Linux 2.1,HADB 支持 ext2 文件系统。

Veritas 文件系统

在 Solaris 上使用 Veritas 文件系统时,HADB 将向历史文件写入消息 "WRN: Direct disk I/O mapping failed"。此消息指出:HADB 无法打开用于数据和日志设备的直接输入/输出 (input/output, I/O)。直接 I/O 可以减少写入磁盘页面的 CPU 耗时。它还可以降低管理操作系统中的“脏”数据页面的系统开销。

要结合使用直接 I/O 和 Veritas 文件系统,请执行以下操作之一:


注 –

尚未使用 Sun Java System Application Server 对这些配置进行测试。


安装

通常,可以在与 Application Server(同机拓扑)相同的系统上或单独的主机(单独层拓扑)上安装 HADB。有关这两个选项的更多信息,请参见《Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Deployment Planning Guide》中的第 3  章 “Selecting a Topology”。但是,您必须安装 HADB 管理客户机,才能使用 asadmin ha-config-cluster 命令设置高可用性。使用 Java Enterprise System 安装程序时,即使要将节点安装在单独层上,也必须安装完整的 HADB 实例以便安装管理客户机。

HADB 安装

在单或双 CPU 系统上,如果该系统至少有 2 GB 的内存,则可以同时安装 HADB 和 Application Server。否则,请在单独的系统上安装 HADB 或使用其他硬件。要使用 asadmin ha-configure-cluster 命令,您必须同时安装了 HADB 和 Application Server。

每个 HADB 节点需要 512 MB 的内存,因此计算机需要 1 GB 的内存来运行两个 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 可执行文件不具有正确的权限,您可能会注意到以下资源不足时出现的问题,例如:

限制

如果 NSUP 无法设置实时优先级,则 errno 在 Solaris 和 Linux 中被设为 EPERM。在 Windows 中,它将发出“无法设置实时优先级”的警告。系统将错误写入 ma.log 文件,并且进程在没有实时优先级的情况下继续进行。

在以下情况下无法设置实时优先级:

Procedure授予节点监控进程 root 用户权限

  1. 以 root 用户身份登录。

  2. 将您的工作目录更改为 HADB_install_dir/lib/server

    NSUP 可执行文件为 clu_nsup_srv

  3. 使用以下命令设置文件的 suid 位:

    chown root clu_nsup_srv

  4. 使用以下命令将文件的所有权设置为 root 用户:

    chmod u+s clu_nsup_srv

    这将以 root 用户身份启动 clu_nsup_srv 进程,并使该进程授予其自身实时优先级。

    为了避免任何安全性影响,启动进程后将立即设置实时优先级,并且一旦优先级更改,该进程将退回至有效 UID。其他 HADB 进程使用普通优先级运行。

设置高可用性

本节提供了创建高可用性群集和测试 HTTP 会话持久性的步骤。

本节包括以下主题:

先决条件

配置 HADB 之前,请先执行以下操作:

Procedure准备高可用性系统

  1. 安装 Application Server 实例和负载平衡器插件。

    有关更多信息,请参见 Java Enterprise System 安装指南(如果使用 Java ES)或《Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Installation Guide》(如果使用独立的 Application Server 安装程序)。

  2. 创建 Application Server 域和群集。

    有关更多信息,请参见《Sun Java System Application Server Enterprise Edition 8.1 2005Q2 管理指南》

  3. 安装和配置 Web Server 软件。

    有关更多信息,请参见配置 Web 服务器以实现负载平衡

  4. 设置和配置负载平衡。

    有关更多信息,请参见设置 HTTP 负载平衡

启动 HADB 管理代理

管理代理 ma 用于在 HADB 主机上执行管理命令,并在 HADB 节点监控进程失败时通过重新启动它们来确保其可用性。

对于生产部署,将管理代理作为服务启动可以确保其可用性。本节为使用默认配置将管理代理作为服务启动提供了简明指导。

有关详细信息(包括以控制台模式启动管理代理以进行测试或评估的说明,以及有关自定义配置的信息),请参见使用 HADB 管理代理

本节介绍了使用 Java Enterprise System 时,如何使用默认配置将管理代理作为服务启动。

Procedure在 Solaris 或 Linux 中使用 Java Enterprise System 启动管理代理

  1. 创建到文件 /etc/init.d/ma-initd 的以下软链接:


    /etc/rc0.d/K20ma-initd
    /etc/rc1.d/K20ma-initd
    /etc/rc2.d/K20ma-initd
    /etc/rc3.d/S99ma-initd
    /etc/rc5.d/S99ma-initd
    /etc/rcS.d/K20ma-initd
  2. 重新引导计算机。

    取消激活自动启动和停止代理、删除链接或将链接名称中的字母 K 和 S 更改为小写。

Procedure在 Windows 中使用 Java Enterprise System 启动管理代理

  1. 打开一个命令窗口。

  2. 输入命令:HADB_install_dir\bin\ma -i

    这将使用其默认配置安装和启动管理代理。

接下来的操作

要将管理代理(作为服务)停止并删除(注销),请使用以下命令:HADB_install_dir\bin\ma -r

Procedure在 Solaris 或 Linux 中使用独立的 Application Server 启动管理代理

  1. 在 shell 中,将当前目录更改为 HADB_install_dir/bin

  2. 编辑 shell 脚本 ma-initd

    替换脚本中 HADB_ROOT 和 HADB_MA_CFG 的默认值以对应于您的安装:

    • HADB_ROOT 为 HADB 安装目录 HADB_install_dir

    • HADB_MA_CFG 为管理代理配置文件的位置。有关更多信息,请参见自定义管理代理配置

  3. ma-initd 复制到目录 /etc/init.d

  4. 创建到文件 /etc/init.d/ma-initd 的以下软链接:


    /etc/rc0.d/K20ma-initd
    /etc/rc1.d/K20ma-initd
    /etc/rc2.d/K20ma-initd
    /etc/rc3.d/S99ma-initd
    /etc/rc5.d/S99ma-initd
    /etc/rcS.d/K20ma-initd

Procedure在 Windows 中使用独立的 Application Server 启动管理代理

  1. 打开一个命令窗口。

  2. 输入命令:HADB_install_dir\bin\ma -i ma.cfg

    现在如果进程失败或重新引导计算机,则管理代理将自动重新启动。

接下来的操作

要将管理代理(作为服务)停止并删除(注销),请使用以下命令:HADB_install_dir\bin\ma -r ma.cfg

配置高可用性群集

开始本节之前,您必须已经创建一个或多个 Application Server 群集。有关如何创建群集的信息,请参见创建群集

使用以下命令,从运行域管理服务器的计算机将群集配置为使用 HADB:

asadmin configure-ha-cluster --user admin --hosts hadb_hostname,hadb_hostname --devicesize 256 clusterName

hadb_hostname 替换为运行 HADB 的计算机的主机名,并将 clusterName 替换为群集的名称。如果您仅使用一台计算机,则必须提供两次主机名。

此简化示例在同一台计算机上运行两个 HADB 节点。在生产设置中,建议使用多台计算机。

配置高可用性应用程序

在管理控制台中,在“应用程序”>“企业应用程序”下选择应用程序。设置“启用可用性”,然后单击“保存”。

重新启动群集

要在管理控制台中重新启动群集,请选择“群集”> cluster-name。单击“停止实例”。当实例都停止后,单击“启动实例”。

或者,使用以下 asadmin 命令:

asadmin stop-cluster --user admin cluster-name
asadmin start-cluster --user admin cluster-name

有关这些命令的更多信息,请参见 stop-cluster(1)start-cluster(1)

重新启动 Web Server

要重新启动 Web Server,请键入以下 Web Server 命令:

web_server_root/https-hostname/reconfig

web_server_root 替换为您的 Web Server 根目录,并将 hostname 替换为您的主机名。

Procedure清除作为负载平衡器使用的 Web Server 实例

  1. 删除负载平衡器配置:

    asadmin delete-http-lb-ref --user admin --config MyLbConfig FirstCluster

    asadmin delete-http-lb-config --user admin MyLbConfig

  2. 如果您创建了新的 Web Server 实例,则您可以通过以下方法删除它:

    1. 登录到 Web Server 的管理控制台。

    2. 停止该实例。

      删除该实例。

升级 HADB

HADB 旨在通过升级本软件提供不间断的 "always on" 服务。本节介绍了在不使数据库脱机或引起任何可用性损失的情况下如何升级到 HADB 的新版本。

以下各节将介绍如何升级 HADB 安装:

Procedure将 HADB 升级到更新版本

  1. 安装 HADB 的新版本。

  2. 按照注销 HADB 软件包中所述,注销您现有的 HADB 安装。

  3. 按照注册 HADB 软件包中所述,注册新的 HADB 版本。

    在 HADB 管理域中注册 HADB 软件包使得升级或更改 HADB 软件包变得更加容易。管理代理记录软件包的位置以及域中主机的版本信息。默认软件包的名称是以 V 开头的字符串,其中包括 hadbm 程序的版本号。

  4. 更改数据库所使用的软件包。

    请输入以下命令:


    hadbm set PackageName=package
    

    其中 package 是新的 HADB 软件包的版本号。

  5. 如果需要,请替换管理代理的启动脚本。

    有关更多信息,请参见替换管理代理的启动脚本

注册 HADB 软件包

使用 hadbm registerpackage 命令注册 HADB 软件包,该软件包安装在管理域中的主机上。也可在使用 hadbm create 命令创建数据库时注册 HADB 软件包。

使用 hadm registerpackage 命令之前,请确保满足以下要求:已配置所有管理代理并且它们在主机列表中的所有主机上运行;管理代理的系统信息库可以更新,并且没有使用相同的软件包名称注册的软件包。

该命令语法为:

hadbm registerpackage --packagepath=path [-- hosts=hostlist] [-- adminpassword=password | -- adminpasswordfile=file] [-- agent=maurl] [[package-name ]]

package-name 操作数是软件包的名称。

下表介绍了特殊的 hadbm registerpackage 命令选项。有关其他命令选项的说明,请参见安全性选项常规选项

表 2–1 hadbm registerpackage 选项

选项 

说明 

--hosts=hostlist

-H 

主机列表,用逗号分隔或放在双引号内并用空格分隔。 

--packagepath=path

-L 

HADB 软件包的路径。 

例如,使用以下命令可在主机 host1、host2 和 host3 上注册软件包 v4:

hadbm registerpackage 
--packagepath=hadb_install_dir/SUNWHadb/4.4 
--hosts=host1,host2,host3 v4

响应为:

软件包注册成功

如果您省略 --hosts 选项,则此命令将在域中所有已启用的主机上注册该软件包。

注销 HADB 软件包

使用 hadbm unregisterpackage 命令删除用管理域注册的 HADB 软件包。

使用 hadbm unregisterpackage 命令之前,请确保满足以下要求:已配置所有管理代理并且它们在主机列表中的所有主机上运行;管理代理的系统信息库可以更新;已在管理域中注册了该软件包,并且没有将现有数据库配置为在要注销的软件包上运行。

该命令语法为:

hadbm unregisterpackage  
--hosts=hostlist  
[--adminpassword=password | --adminpasswordfile= file]  
[--agent= maurl]  
[package-name ]

package-name 操作数是软件包的名称。

有关 --hosts 选项的说明,请参见上述注册 HADB 软件包。如果您省略 --hosts 选项,主机列表将默认为已启用的注册了软件包的主机。有关其他命令选项的说明,请参见安全性选项常规选项


示例 2–2 注销 HADB 的示例

从域中特定主机上注销软件包 v4:

hadbm unregisterpackage --hosts=host1,host2,host3 v4

响应为:

软件包注销成功


替换管理代理的启动脚本

安装 HADB 的新版本时,您可能需要替换 /etc/init.d/ma-initd 中的管理代理启动脚本。检查文件 HADB_install_dir/lib/ma-initd 的内容。如果该文件不同于旧的 ma-initd 文件,则请将旧文件替换为新文件。