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

监视 HADB

您可以通过以下方式监视 HADB 的活动:

以下各节简要介绍了 hadbm statushadbm deviceinfohadbm resourceinfo 命令。有关 HADB 信息的说明,请参见《Sun Java System Application Server 9.1 Performance Tuning Guide》中的“Performance”

获取 HADB 的状态

使用 hadbm status 命令显示数据库或其节点的状态。该命令语法为:

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

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

--nodes 选项(短形式 -n)显示了数据库中每个节点的信息。有关更多信息,请参见节点状态。有关其他命令选项的说明,请参见常规选项

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


示例 3–15 获取 HADB 状态的示例

例如:

hadbm status --nodes

数据库状态

数据库的状态汇总了其当前情况。下表介绍了数据库的可能状态。

表 3–14 HADB 状态

数据库状态 

说明 

高可用性容错 (High-Availability Fault Tolerant, HAFaultTolerant) 

数据库具有容错能力,并且在每个 DRU 中至少有一个备用节点。 

容错 

所有镜像节点对均启动并且正在运行。 

可操作 

每个镜像节点对中至少有一个节点正在运行。 

不可操作 

一个或多个镜像节点对中的双方均缺少节点。 

如果数据库处于不可操作状态,请清除数据库,如清除数据库所述。

已停止 

数据库中没有正在运行的节点。 

不明 

无法确定数据库的状态。 

节点状态

通过 --nodes 选项使 hadbm status 命令显示数据库中每个节点的以下信息:

节点的角色和状态可以更改,如以下各节中所述:

节点的角色

在创建节点过程中为节点指定了角色,并且节点可以具有以下角色之一:

节点的状态

节点可处于以下状态之一:

获取设备信息

监视 HADB 数据(磁盘存储)设备的空闲空间:

使用 hadbm deviceinfo 命令获取关于数据设备上空闲空间的信息。该命令显示了数据库每个节点的以下信息:

该命令语法为:

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

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

--details 选项显示了以下其他信息:

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

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

要确定用户数据的可用空间,请用总设备大小减去为 HADB 保留的空间:即四倍的 LogBufferSize + 1% 的设备大小。如果不知道日志缓冲区的大小,请使用命令 hadbm get logbufferSize。例如,如果总设备大小为 128 MB,LogBufferSize 为 24 MB,则用户数据的可用空间为 128 – (4 x 24) = 32 MB。32 MB 中一半用于已复制的数据,大约百分之一用于索引,只有百分之二十五用于实际用户数据。

总大小和保留大小之间的差额为用户数据的可用空间。如果将来对数据进行重新分段,则空闲大小必须为用户数据可用空间的大约 50%。如果不进行重新分段,则可以最大限度地利用数据设备。如果系统在设备空间不足的情况下运行,则资源消耗警告将被写入历史文件。

有关调节 HADB 的更多信息,请参见 Sun Java System Application Server Performance Tuning Guide


示例 3–16 获取设备信息的示例

以下命令:

hadbm deviceinfo --details

显示以下示例结果:

NodeNO Totalsize Freesize Usage NReads NWrites DeviceName
0      128       120      6%    10000  5000    C:\Sun\SUNWhadb\hadb.data.0
1      128       124      3%    10000  5000    C:\Sun\SUNWhadb\hadb.data.1
2      128       126      2%     9500  4500    C:\Sun\SUNWhadb\hadb.data.2
3      128       126      2%     9500  4500    C:\Sun\SUNWhadb\hadb.data.3

获取运行时资源信息

hadbm resourceinfo 命令显示了 HADB 运行时资源信息。使用此信息有助于识别资源争用并减少性能瓶颈。有关详细信息,请参见《Sun Java System Application Server 9.1 Performance Tuning Guide》中的“Tuning HADB”

该命令语法为:

hadbm resourceinfo  [--databuf]  [--locks]  [--logbuf]  [--nilogbuf]  
[--adminpassword=password | --adminpasswordfile=file]  
[--agent=maurl]  
[dbname]

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

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

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

表 3–15 hadbm resourceinfo 命令选项

选项 

说明 

--databuf

-d 

显示数据缓冲池信息。 

有关更多信息,请参见以下数据缓冲池信息

--locks

-l 

显示锁信息。 

有关更多信息,请参见以下锁信息

--logbuf

-b 

显示日志缓冲区信息。 

有关更多信息,请参见以下日志缓冲区信息

--nilogbuf

-n 

显示节点内部日志缓冲区信息。 

有关更多信息,请参见以下节点内部日志缓冲区信息

数据缓冲池信息

数据缓冲池信息包含:

当用户事务在记录上执行操作时,包含该记录的页面必须在数据缓冲池中。如果该页面不在数据缓冲池中,则发生 miss 或缺页。然后事务必须等待,直到从磁盘的数据设备文件中检索到该页面。

如果未命中率很高,则增加数据缓冲池。由于未命中次数是累积的,请定期运行 hadbm resourceinfo,并使用两次运行结果的不同查看未命中率的趋向。如果空闲空间很小,请勿考虑运行该命令,因为检查点机制将使新块可用。


示例 3–17 数据缓冲池信息示例

例如:


NodeNO Avail Free Access Misses Copy-on-Write
0 256 128 100000 50000 10001 256 128 110000 45000 950

锁信息

锁信息如下:

一个事务无法使用节点上超过 25% 的可用锁。因此,大规模执行操作的事务应注意到该限制。最好成批执行此类事务,其中每批都必须被视为一个独立事务,即分批提交。需要这样做的原因是,读取操作(在 repeatable read 隔离层运行)以及 deleteinsertupdate 操作使用仅在事务终止后才被释放的锁。

要更改 NumberOfLocks,请参见清除和归档历史文件


示例 3–18 锁信息示例

例如:


NodeNO Avail Free Waits
0 50000 20000 101 50000 20000 0

日志缓冲区信息

日志缓冲区信息为:

如果空闲空间很小,请勿担心,因为 HADB 可以启动日志缓冲区压缩。HADB 从环状缓冲区的头部开始压缩,并在连续日志记录上执行。当 HADB 遇到尚未由节点执行并且尚未由镜像节点接收的日志记录时,压缩无法继续进行。


示例 3–19 日志缓冲区信息的示例

例如:


NodeNO Avail Free
0 16 21 16 3

节点内部日志缓冲区信息

节点内部日志缓冲区信息为:


示例 3–20 内部日志缓冲区信息示例

例如:

NodeNO Avail Free

0 16 21 16 3