当替换或升级网络、硬件、操作系统或 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),该选项指定了启动节点的级别。
节点启动级别为:
normal(默认值):使用在节点上找到的本地数据(在内存中以及在磁盘的数据设备文件中)启动节点,并使用节点缺少的最近更新的镜像对其进行同步。
repair:强制节点放弃本地数据并从其镜像复制数据。
clear:重新初始化节点的设备并从该节点的镜像节点强制修复数据。在设备文件需要初始化时使用,如果文件损坏或包含设备文件的磁盘被替换,则该启动级别是必需的。
有关其他命令选项的说明,请参见常规选项。
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)。
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)。
hadbm restartnode 1
您可以在 HADB 数据库中执行以下操作:
要启动数据库,请使用 hadbm start 命令。此命令将启动数据库停止之前正在运行的所有节点。在停止数据库之后再次启动数据库时,不会启动单独停止(脱机)的节点。
该命令语法为:
hadbm start [--adminpassword=password | --adminpasswordfile=file] [--agent=maurl] [dbname]
dbname 操作数指定数据库名称。默认值为 hadb。
有关命令选项的说明,请参见常规选项。有关更多信息,请参见 hadbm-start(1)。
hadbm start
如果使用单独的操作停止并启动数据库,则数据库处于停止状态时数据不可用。要保持数据可用,可以重新启动数据库,如重新启动数据库所述。
停止数据库以:
删除数据库。
执行影响所有 HADB 节点的系统维护。
停止数据库之前,可以停止使用该数据库的依赖 Application Server 实例,也可以将其配置为使用持久性类型而不使用 ha。
停止数据库时,将停止数据库中所有正在运行的节点并且数据库将变为已停止状态。有关数据库状态的更多信息,请参见数据库状态。
要停止数据库,请使用 hadbm stop 命令。该命令语法为:
hadbm stop [--adminpassword=password | --adminpasswordfile= file] [--agent=maurl] [dbname]
dbname 操作数指定数据库名称。默认值为 hadb。
有关命令选项的说明,请参见常规选项。有关更多信息,请参见 hadbm-stop(1)。
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 status 命令显示数据库处于不可操作状态,请参见获取 HADB 的状态。
多个节点不能响应并长时间处于等待状态。
从会话数据损坏中恢复。请参见从会话数据损坏恢复。
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 选项
选项 |
说明 |
默认值 |
---|---|---|
-F |
在初始化数据库时跳过设备初始化。如果磁盘存储设备损坏,请勿使用此选项。 |
不存在 |
-s |
重新初始化的数据库将具有的备用节点数目。此数目必须为偶数,并且必须小于数据库中的节点数目。 |
先前的备用节点数目 |
例如:
hadbm clear --fast --spares=2
要删除现有数据库,请使用 hadbm delete 命令。该命令将删除数据库的配置文件、设备文件和历史文件,并释放共享的内存资源。您要删除的数据库必须存在并且必须处于已停止状态。请参见停止数据库。
该命令语法为:
hadbm delete [--adminpassword=password | --adminpasswordfile=file] [--agent=maurl] [dbname]
dbname 操作数指定数据库名称。默认值为 hadb。
有关命令选项的说明,请参见常规选项。有关更多信息,请参见 hadbm-delete(1)。
命令:
hadbm delete
将删除默认数据库 hadb。
以下情况表明会话数据可能已损坏:
每次应用程序尝试保存会话状态时,Application Server 系统日志 (server.log) 都显示错误消息。
在会话激活过程中,服务器日志中的错误消息表明找不到会话或无法装入会话。
先前钝化后又被激活的会话包含空的或不正确的会话数据。
实例出现故障时,故障转移的会话包含空的或不正确的会话数据。
实例出现故障时,尝试装入故障转移的会话的实例导致在服务器日志中生成表明找不到会话或无法装入会话的错误。
如果您确定会话存储已损坏,则可以执行以下步骤使其恢复到一致状态: