Sun Java System Application Server 9.1 高可用性管理指南

管理 HADB

当替换或升级网络、硬件、操作系统或 HADB 软件时,通常需要执行管理操作。以下各节说明了各种管理操作:

管理域

您可以在 HADB 域上执行以下操作:

有关命令选项的说明,请参见安全性选项常规选项

扩展域

使用 extenddomain 将主机添加到一个现有管理域中。该命令语法为:

hadbm extenddomain  
[--adminpassword=password | --adminpasswordfile=file]  
[--agent=maurl]  
hostlist

HADB 主机的 IP 地址必须为 IPv4 地址。

有关更多信息,请参见 hadbm-extenddomain(1)

删除域

使用 deletedomain 删除管理域。该命令语法为:

hadbm deletedomain  
[--adminpassword=password | --adminpasswordfile=file]  
[--agent=maurl]

有关更多信息,请参见 hadbm-deletedomain(1)

从域中删除主机

使用 reducedomain 从管理域中删除主机。该命令语法为:

hadbm reducedomain  
[--adminpassword=password | --adminpasswordfile=file]  
[--agent=maurl]  
host_list

有关更多信息,请参见 hadbm-reducedomain(1)

列出域中的主机

使用 listdomain 列出管理域中定义的所有主机。该命令语法为:

hadbm listdomain  
[--adminpassword=password | --adminpasswordfile=file]  
[--agent=maurl]

有关更多信息,请参见 hadbm-listdomain(1)

管理节点

您可以在单个节点上执行以下操作:

启动节点

您可能需要手动启动已停止的 HADB 节点(停止原因为其主机为进行硬件或软件的升级或替换而脱机)。此外,您可能需要手动启动由于某种原因(非双重故障)而无法重新启动的节点。有关如何从双重故障中恢复的更多信息,请参见清除数据库

在大多数情况下,您应首先尝试使用 normal 启动级别启动节点。如果 normal 启动级别失败或超时,则必须使用 repair 启动级别。

要启动数据库中的节点,请使用 hadbm startnode 命令。语法为:

hadbm startnode
 [--adminpassword=password | --adminpasswordfile=file]
 [--agent=maurl]
 [--startlevel=level]
 nodeno
 [dbname]

dbname 操作数指定数据库名称。默认值为 hadb

nodeno 操作数指定要启动的节点编号。使用 hadbm status 显示数据库中所有节点的编号。

有关更多信息,请参见 hadbm-startnode(1)

启动级别选项

hadbm startnode 命令具有一个特殊选项 --startlevel(短形式 -l),该选项指定了启动节点的级别。

节点启动级别为:

有关其他命令选项的说明,请参见常规选项


示例 3–6 启动节点的示例

hadbm startnode 1

停止节点

您可能需要停止节点以修复或升级主机的硬件或软件。要停止节点,请使用 hadbm stopnode 命令。该命令语法为:

hadbm stopnode  
[--adminpassword=password | --adminpasswordfile=file]  
[--agent=maurl]  
[--no-repair]  
nodeno  
[dbname]

nodeno 操作数指定要停止的节点的编号。此节点编号的镜像节点必须正在运行。使用 hadbm status 显示数据库中所有节点的编号。

dbname 操作数指定数据库名称。默认值为 hadb

hadbm stopnode 命令具有一个特殊选项 --no-repair(短形式 -R),该选项表明无备用节点可以替换已停止的节点。如果没有此选项,备用节点将启动并接管已停止的节点的工作。

有关其他命令选项的说明,请参见常规选项。有关更多信息,请参见 hadbm-stopnode(1)


示例 3–7 停止节点的示例

hadbm stopnode 1

重新启动节点

如果发现行为异常(例如,过度 CPU 消耗),您可能需要重新启动节点。

要重新启动数据库中的节点,请使用 hadbm restartnode 命令。该命令语法为:

hadbm restartnode  
[--adminpassword=password | --adminpasswordfile=file]  
[--agent=maurl]  
[--startlevel=level]  
nodeno  
[dbname]

dbname 操作数指定数据库名称。默认值为 hadb

nodeno 操作数指定要重新启动的节点的编号。使用 hadbm status 显示数据库中所有节点的编号。

hadbm restartnode 命令具有一个特殊选项 --startlevel(短形式 -l),该选项指定了启动节点的级别。有关更多信息,请参见启动级别选项

有关其他命令选项的说明,请参见常规选项。有关更多信息,请参见 hadbm-restartnode(1)


示例 3–8 重新启动节点的示例

hadbm restartnode 1

管理数据库

您可以在 HADB 数据库中执行以下操作:

启动数据库

要启动数据库,请使用 hadbm start 命令。此命令将启动数据库停止之前正在运行的所有节点。在停止数据库之后再次启动数据库时,不会启动单独停止(脱机)的节点。

该命令语法为:

hadbm start
[--adminpassword=password | --adminpasswordfile=file]
[--agent=maurl]
[dbname]

dbname 操作数指定数据库名称。默认值为 hadb

有关命令选项的说明,请参见常规选项。有关更多信息,请参见 hadbm-start(1)


示例 3–9 启动数据库的示例

hadbm start

停止数据库

如果使用单独的操作停止并启动数据库,则数据库处于停止状态时数据不可用。要保持数据可用,可以重新启动数据库,如重新启动数据库所述。

停止数据库以:

停止数据库之前,可以停止使用该数据库的依赖 Application Server 实例,也可以将其配置为使用持久性类型而不使用 ha

停止数据库时,将停止数据库中所有正在运行的节点并且数据库将变为已停止状态。有关数据库状态的更多信息,请参见数据库状态

要停止数据库,请使用 hadbm stop 命令。该命令语法为:

hadbm stop  
[--adminpassword=password | --adminpasswordfile= file]  
[--agent=maurl]  
[dbname]

dbname 操作数指定数据库名称。默认值为 hadb

有关命令选项的说明,请参见常规选项。有关更多信息,请参见 hadbm-stop(1)


示例 3–10 停止数据库的示例

hadbm stop

重新启动数据库

如果发现行为异常(例如持续超时问题),则可能需要重新启动数据库。在某些情况下,重新启动可以解决此问题。

重新启动数据库时,数据库及其数据仍然可用。如果使用单独的操作停止并启动 HADB,则 HADB 处于停止状态时数据和数据库服务不可用。这是因为,默认情况下,hadbm restart 执行节点的滚动重新启动:它逐个停止并启动节点。相反,hadbm stop 将同时停止所有节点。

要重新启动数据库,请使用 hadbm restart 命令。该命令语法为:

hadbm restart  
[--adminpassword=password | --adminpasswordfile=file]  
[--agent=maurl]  
[--no-rolling]  
[dbname]

dbname 操作数指定数据库名称。默认值为 hadb

特殊选项 --no-rolling(短形式 -g)指定同时重新启动所有节点(这将使服务受到损失)。如果没有此选项,此命令将重新启动数据库中的每个节点并使其达到当前状态或更佳状态。

有关其他命令选项的说明,请参见常规选项。有关更多信息,请参见 hadbm-restart(1)

例如:

hadbm restart

列出数据库

要列出 HADB 实例中的所有数据库,请使用 hadbm list 命令。该命令语法为:

hadbm list  
[--agent=maurl] 
[--adminpassword=password | --adminpasswordfile=file]

有关命令选项的说明,请参见常规选项。有关更多信息,请参见 hadbm-list(1)

清除数据库

在以下情况时清除数据库:

hadbm clear 命令可以停止数据库节点,并清除数据库设备,然后启动节点。该命令将删除 HADB 中的 Application Server 模式数据存储,包括表、用户名和密码。运行 hadbm clear 之后,使用 asadmin configure-ha-cluster 重新创建数据模式、重新配置 JDBC 连接池并重新装入会话持久性存储。

该命令语法为:

hadbm clear  [--fast]  [--spares=number]  
[--dbpassword=password | --dbpasswordfile= file]  
[--adminpassword=password | --adminpasswordfile= file]  
[--agent=maurl] 
[dbname]

dbname 操作数指定数据库名称。默认值为 hadb

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

有关更多信息,请参见 hadbm-clear(1)

表 3–12 hadbm clear 选项

选项 

说明 

默认值 

--fast

-F 

在初始化数据库时跳过设备初始化。如果磁盘存储设备损坏,请勿使用此选项。 

不存在 

--spares= number

-s 

重新初始化的数据库将具有的备用节点数目。此数目必须为偶数,并且必须小于数据库中的节点数目。 

先前的备用节点数目 

例如:

hadbm clear --fast --spares=2

删除数据库

要删除现有数据库,请使用 hadbm delete 命令。该命令将删除数据库的配置文件、设备文件和历史文件,并释放共享的内存资源。您要删除的数据库必须存在并且必须处于已停止状态。请参见停止数据库

该命令语法为:

hadbm delete  
[--adminpassword=password | --adminpasswordfile=file]  
[--agent=maurl]  
[dbname]

dbname 操作数指定数据库名称。默认值为 hadb

有关命令选项的说明,请参见常规选项。有关更多信息,请参见 hadbm-delete(1)


示例 3–11 删除数据库的示例

命令:

hadbm delete

将删除默认数据库 hadb


从会话数据损坏恢复

以下情况表明会话数据可能已损坏:

Procedure使会话存储恢复到一致状态

如果您确定会话存储已损坏,则可以执行以下步骤使其恢复到一致状态:

  1. 清除会话存储。

    确定此操作是否可以修正该问题。如果已修正,则停止。如果未修正(例如,服务器日志中仍出现错误),则继续。

  2. 重新初始化所有节点上的数据空间并清除数据库中的数据。

    请参见清除数据库

    确定此操作是否可以修正该问题。如果已修正,则停止。如果未修正(例如,服务器日志中仍出现错误),则继续。

  3. 删除并重新创建数据库。

    请参见删除数据库创建数据库