返回首页

gbase数据、南大通用产品文档:GBase8s数据复制的工作原理

更新日期:2024年09月11日

这些主题描述了数据库服务器用于对辅助服务器执行数据复制的机制。有关如何设置、启
动和管理各种辅助服务器的指示信息,请参阅下表。
表 1. 辅助服务器设置信息
辅助服务器类型
相关指南
HDR 辅助服务器
请参阅高可用性集群配置,
有关使用外部备份与复原启动 HDR 对的信
息,请参阅《GBase 8s 备份与复原指南》。
RS 辅助服务器
请参阅远程独立辅助服务器。
SD 辅助服务器
请参阅共享磁盘辅助服务器
数据初始复制的工作原理
HDR 辅助服务器和 RS 辅助服务器使用存储空间备份和逻辑日志备份(备份至磁带的和
磁盘上的均包括在内)执行从主数据库服务器到辅助数据库服务器的数据初始复制。
SD 辅助服务器不需要来自主服务器的备份与复原,因为 SD 辅助服务器与主服务器共享
同一磁盘。
要复制数据,请执行以下操作:

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 384 -
1. 在两个数据库服务器上均安装用户定义的类型、用户定义的例程和 DataBlade 模
块。
2. 仅在主数据库服务器上注册用户定义的类型、用户定义的例程和 DataBlade 模块。

3. 要使两个数据库服务器管理的数据同步,请在主数据库服务器上创建所有存储空间
的 0 级备份。
4. 复原数据复制对中辅助数据库服务器上备份的所有存储空间。
然后,最近步中从存储空间备份复原的辅助数据库服务器从主数据库服务器读取自
该备份以来所生成的所有逻辑日志记录。
数据库服务器首先从所有不再在磁盘上的备份逻辑日志文件读取逻辑日志记录,然
后从所有在磁盘上的逻辑日志文件读取。
有关复制数据的详细信息,请参阅首次启动 HDR。《GBase 8s 备份与复原指南》说明了
如何使用 ON-Bar 启动复制。
您必须对存储空间备份执行初始备份。
您无法使用诸如 onload 和 onunload 之类的数据迁
移实用程序来复制数据,因为每个数据库服务器上的物理页布局必须相同,以便数据复制
工作。
主服务器数据到辅助服务器的复制
所有辅助服务器类型都使用日志来复制主服务器复制数据。主服务器将其整个逻辑日志发
送至 HDR 和 RS 辅助服务器,但仅将日志页面的位置发送至 SD 辅助服务器。
索引页面日志记录可供所有辅助服务器使用,但对于到 RS 辅助服务器的复制而言是必需
的。
数据库必须使用事务日志记录才能进行复制。
到 HDR 辅助服务器的复制
主数据库服务器可使用三种同步方式将数据复制到 HDR 辅助服务器:
完全同步方式,其中事务需要 HDR 辅助服务器上的完成确认,然后才能完成。
在您使用完全同步方式时,数据完整性最高,但是如果客户机应用程序使用无缓冲日志记
录并且有许多小事务,那么系统性能可能会受到负面影响。

完全同步方式,其中事务需要 HDR 辅助服务器上的完成确认,然后才能完成。
在您使用完全同步方式时,数据完整性最高,但是如果客户机应用程序使用无缓冲
日志记录并且有许多小事务,那么系统性能可能会受到负面影响。

异步方式,其中事务无需 HDR 辅助服务器上的已接收或已完成确认即可完成。
在使用异步方式时,
系统性能最佳,
但是如果发生服务器故障,
那么数据可能丢失。


接近同步方式,其中事务需要 HDR 辅助服务器上的已接收确认,然后才能完成。


GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 385 -
接近同步方式可提供比完全同步方式更优异的性能,比异步方式更优异的数据完整
性。
如果用于无缓冲日志记录,
那么 SYNC 方式
(在 DRINTERVAL 设置为 -1 时
开启)与接近同步方式相同。
同步方式由 DRINTERVAL 配置参数值、HDR_TXN_SCOPE 配置参数值和数据库日志记
录类型的组合进行控制。
以下两张图演示了从主服务器至 HDR 辅助服务器的复制。
图: 从主服务器至 HDR 辅助服务器的数据复制方式


图: 管理数据复制的线程



GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 386 -
主服务器的逻辑日志缓冲区的内容将复制到共享内存的数据复制缓冲区并清空到磁盘。如
果主服务器使用的是完全同步或接近同步方式,那么它必须接收到来自 HDR 辅助服务器
的确认,然后才能完成逻辑日志清空。 主服务器启动 drprsend 线程以将数据复制缓冲区通
过网络传输到辅助服务器的 drsecrcv 线程,然后该线程会将数据写入共享内存的接收缓冲
区。drsecapply 线程将接收缓冲区复制到恢复缓冲区。HDR 和 RS 辅助服务器都使
用 logrecvr 线程来为逻辑日志记录应用其数据库空间。您可以通过更改
OFF_RECVRY_THREADS 配置参数的值来调整 logrecvr 线程的数量。
drprping 和 drsecping 线程发送并接收消息以监视两个服务器之间的连接。
到 RSS 辅助服务器的复制
因为主服务器和 RS 辅助服务器之间的检查点是异步的,
因此 RS 辅助服务器需要索引页
面日志记录。
下图演示了从主服务器至 RS 复制服务器的复制。
图: 管理 RS 辅助服务器的数据复制的线程

如果主服务器可以验证其已连接到 RS 辅助服务器,那么 RSS_send 线程将页面从磁盘或
逻辑日志缓冲区复制到数据复制缓冲区。
RSS_Send 线程使用
“服务器多路复用器组”
(SMX)
连接以将数据复制缓冲区发送至 RS 辅助服务器的 RSS_recv 线程。然后,RSS_recv 线程
将数据写入接收缓冲区。RSS_apply 线程将接收缓冲区复制到恢复缓冲区。
不同于 HDR 完全同步方式或接近同步方式,主服务器在发送下一个缓冲区之前不需要来
自辅助服务器的确认。在 RSS_send 线程等待 RSS_Recv 线程接收来自 RS 辅助服务器的
确认之前,主服务器最多发送 32 个未确认的数据复制缓冲区。
到 SD 辅助服务器的复制
SD 辅助服务器从磁盘读取逻辑日志页,然后将数据应用于其内存数据缓冲区。
HDR 复制的完全同步方式

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 387 -
HDR 完全同步方式确保主服务器上已落实的任何事务也在 HDR 辅助服务器上落实,
这可
以在发生故障时保护事务一致性。
主数据库服务器将逻辑日志缓冲区内容写入 HDR 缓冲区后,会将缓冲区中的记录发送至
HDR 辅助数据库服务器。
仅当主数据库服务器接收到来自 HDR 辅助数据库服务器的确认
(已收到记录)之后,主数据库服务器上的逻辑日志缓冲区清空才会完成。
为跟踪同步,主服务器和 HDR 辅助服务器都在其保留的页面中存储以下信息:

包含最近完成的检查点的逻辑日志文件的标识

逻辑日志文件中检查点记录的位置

上次发送或接收的逻辑日志文件的标识

上次发送或接收的逻辑日志记录的页码
要查看此信息,请运行 onstat -g dri ckpt 命令。
HDR 复制对中的数据库服务器之间的检查点是同步的。
主服务器会等待 HDR 辅助服务器
确认收到了检查点日志记录后,再完成其检查点。如果检查点未在 DRTIMEOUT 配置参
数指定的时间内完成,那么主数据库服务器假定发生了故障。
HDR 完全同步方式具有以下需求:

主服务器和 HDR 辅助服务器上的 DRINTERVAL 配置参数必须设置为 0。

主服务器和 HDR 辅助服务器上的 DRTIMEOUT 配置参数必须设置为相同值。
如果主服务器和 HDR 辅助服务器上的操作系统时间是同步的,那么管理可以更轻松。
要开启完全同步数据复制,请将 DRINTERVAL 配置参数设置为 0,然后使用以下某种方
法:

将 HDR_TXN_SCOPE 配置参数设置为 FULL_SYNC。

运行 SET ENVIRONMENT HDR_TXN_SCOPE 'FULL_SYNC';
日志记录将按照其接收顺序进行应用。
在日志传输缓冲区包含许多日志记录时,
在 HDR 辅
助服务器上应用这些日志记录将需要更多时间,并且性能可能受到负面影响。如果发生此
情况,请考虑将接近同步方式用于 HDR 数据复制。
HDR 复制的接近同步方式
在使用 HDR 复制的接近同步方式时,主服务器在收到有关 HDR 辅助服务器已接收所传
输事务的确认后,将逻辑日志缓冲区清空至磁盘。主服务器不会等待有关在 HDR 辅助服
务器上已落实事务的确认。
在日志传输缓冲区包含许多日志记录时,在 HDR 辅助服务器上应用这些日志记录将需要
更多时间。
HDR 复制的接近同步方式提供比完全同步方式更优异的性能,
比异步方式更优
异的数据完整性。
主服务器在其保留的页面中存储以下接近同步信息:

已排队至 drprsend 线程的未处理数据复制缓冲区的数量。

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 388 -

日志唯一值,最近分页的日志的页码。

线程控制块 (TCB) 的指针、带括号的线程标识以及该线程已执行的落实的日志序
号 (LSN)。

等待 HDR 辅助服务器上“已接收”确认的落实的 LSN。
要查看此信息,请运行 onstat -g dri que 命令。
复制对中的数据库服务器间的检查点是同步的。主服务器会等待 HDR 辅助服务器确认收
到了检查点日志记录后,再完成其检查点。如果检查点未在 DRTIMEOUT 配置参数指定
的时间内完成,那么主数据库服务器假定发生了故障。
HDR 接近同步方式具有以下需求:

主服务器和 HDR 辅助服务器上的 DRINTERVAL 配置参数必须设置为 -1,或者
主服务器上的 DRINTERVAL 配置参数必须设置为 0。

主服务器和 HDR 辅助服务器上的 DRTIMEOUT 配置参数必须设置为相同值。

主服务器和 HDR 辅助服务器上的操作系统时间必须是同步的。
要开启接近同步数据复制,请将 DRINTERVAL 配置参数设置为 0,然后使用以下某种方
法:

将 HDR_TXN_SCOPE 配置参数设置为 NEAR_SYNC。

运行 SET ENVIRONMENT HDR_TXN_SCOPE 'NEAR_SYNC';
HDR 复制的异步方式
异步 HDR 复制意味着主服务器不等待来自 HDR 辅助服务器的响应,就将逻辑日志清空
至磁盘。异步 HDR 复制可提高复制速度,但可能会丢失事务。
可通过多种方式开启 HDR 复制的异步方式:

将 DRINTERVAL 配置参数设置为正整数值。

将 DRINTERVAL 配置参数设置为 0,并将 HDR_TXN_SCOPE 配置参数设置为
ASYNC。

运行以下语句:
SET ENVIRONMENT HDR_TXN_SCOPE 'ASYNC';
在异步方式中,主数据库服务器在将逻辑日志缓冲区的内容复制到数据复制缓冲区后,将
逻辑日志清空至磁盘。在发生以下某个条件时,主数据库服务器将通过网络发送 HDR 缓
冲区的内容:

HDR 缓冲区变满。

自记录发送至 HDR 辅助数据库服务器以来的时间间隔超出主服务器的
DRINTERVAL 配置参数值。

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 389 -
要降低使用异步复制的集群中丢失事务的风险,请为所有数据库使用无缓冲日志记录。 无
缓冲日志记录缩短了事务记录等待和传输之间的时间量。
如果主服务器使用缓冲日志记录,
并且您收到 error -7350 Attempt to update a stale version of a row 消息,那么请切换至无缓冲
日志记录。
如果发生故障转移,但是主服务器重新启动后带有数据复制,那么主服务器上已落实但辅
助服务器上未落实的事务将存储在 DRLOSTFOUND 配置参数指定的文件中。
失而复得的事务
使用异步更新时,在主数据库服务器上落实的事务可能未在辅助数据库服务器上复制。如
果在主数据库服务器将落实记录复制到 HDR 缓冲区之后但在主数据库服务器将该落实记
录发送至辅助数据库服务器之前发生故障,就会产生这种情况。
如果在主数据库服务器故障后将辅助数据库服务器更改为标准数据库服务器,它会回滚所
有打开的事务。这些事务包括任何在主数据库服务器上落实但辅助数据库服务器未接收到
其落实记录的事务。因此,事务在主数据库服务器上但未在辅助数据库服务器上落实。当
您在故障后重新启动数据复制,那么数据库服务器在主数据库服务器的逻辑恢复期间将丢
失的事务中的所有逻辑日志记录放置在某文件(DRLOSTFOUND 配置参数指定)中。下
图说明了该过程。
图: 使用失而复得的文件


如果在重新启动数据复制后的运行主数据库服务器的计算机上创建不失而复得的文件,那
么表示已丢失事务。数据库服务器无法重新应用失而复得文件中的事务记录,因为在辅助
数据库服务器充当标准数据库服务器时可能发生了有冲突的更新。

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 390 -
为了减少不用同步方式运行数据复制而丢失事务的风险,请为所有数据库使用未缓冲日志
记录。该方法减少了从主数据库服务器到辅助数据库服务器的写入和事务记录传送之间所
需的时间量。
数据复制配置示例
这些主题描述了如何配置数据复制环境的一些示例。
远程独立辅助配置示例
下图说明了由多个 RS 辅助服务器组成的配置的示例。
当主服务器距离 RS 辅助服务器很
远或主服务器和 RS 辅助服务器之间的网络速度较慢或不稳定时,该配置可能有用。因为
RS 辅助服务器使用全双工通信协议,
而且不需要同步检查点处理,
因此主服务器的性能通
常不受影响。
图: 具有三台 RS 辅助服务器的主服务器

下一幅图显示了配置 RS 辅助服务器以及 HDR 辅助服务器的示例。 在该示例中,如果
主服务器和 HDR 辅助服务器均丢失,那么 HDR 辅助服务器提供高可用性,而 RS 辅助
服务器提供额外的灾难恢复功能。 RS 辅助服务器在地理位置上可距离主服务器和 HDR
辅助服务器很远,因此区域性的破坏(如地震或洪水)不会对 RS 辅助服务器造成影响。
图: 具有 HDR 辅助服务器和 RS 辅助服务器的主服务器

如果主数据库服务器发生故障,那么可将现有 HDR 辅助服务器转换为主服务器,如下图
中所示:
图: 从主服务器故障转移到 HDR 辅助服务器

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 391 -

如果原始主服务器将处于脱机状态的时间过长,那么可将 RS 辅助服务器转换为 HDR 辅
助服务器。当原始主服务器恢复为联机状态时,再将其配置为 RS 辅助服务器,如下图所
示:
图: 充当 HDR 辅助服务器角色的 RS 辅助服务器

共享磁盘辅助配置示例
下图显示了带有两台 SD 辅助服务器的主服务器的示例。在这种情况下,主服务器的角色
可以转换为两台 SD 辅助服务器中的任意一个。无论是因为计划的中断还是因为主服务器
故障而导致主服务器必须停止服务均是如此。
图: 配置有两台 SD 辅助服务器的主服务器

因为两台 SD 辅助服务器都是从同一磁盘子系统进行读取,因此它们都同样能充当主服务
器角色。下图说明了主服务器处于脱机状态的情境。
图: 充当主服务角色的 SD 辅助服务器

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 392 -

有多种方法来防止共享磁盘发生硬件故障。可能最普通的方法就是基于 RAID 技术(例如
RAID-5)配置磁盘阵列。防止磁盘故障的另一种方法是使用 SAN(存储区域技术)来包含
远程磁盘镜像的某些格式。因为 SAN 磁盘可位于距离主磁盘及其镜像较近的位置,因此
这可为服务器或磁盘子系统的计划中断和意外中断提供高度可用性。下图描述了这样的配
置:
图: 具有镜像磁盘的主服务器和 SD 辅助服务器

如果发生磁盘故障,那么可按下图中的描述重新配置服务器:
图: 主共享磁盘发生故障之后的共享磁盘镜像

除了按前一图中的描述配置镜像磁盘子系统外,您可能想要配置其他服务器。 例如,您可
能想要在单个刀片服务器机柜中使用主服务器和两台 SD 辅助服务器。
通过将服务器组放
置在单台刀片服务器中,
该刀片服务器本身可成为故障点。
必须定期增强读处理能力时
(例
如,执行大型报告任务时),下图中的配置是一种极具吸引力的解决方案。
图: 刀片服务器中的主服务器和 SD 辅助服务器

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 393 -

您可以决定通过使用多台刀片服务器来避免单台刀片服务器可能引起的故障点,如下图中
所示。
图: 用于防止单点故障的多台刀片服务器配置

在前一图中,
如果刀片服务器 A 发生故障,
那么它可以将主服务器角色转换为刀片服务器
B 上的 SD 辅助服务器。
因为它可以快速地使附加 SD 辅助服务器联机,
所以它可以动态
地将附加 SD 辅助服务器添加到刀片服务器 B,如下图所示。
图: 刀片服务器发生故障后进行故障转移

因为主服务器与磁盘镜像可支持的镜像磁盘之间的距离存在限制,所以您可能需要考虑使
用共享磁盘和依靠共享磁盘镜像来提供磁盘可用性。例如,您可能希望磁盘子系统的两个
副本之间距离较大。在这种情况下,可能选择使用 HDR 辅助服务器或 RS 辅助服务器来
维护磁盘子系统的辅助副本。
如果网络连接非常快
(即,
如果对辅助服务器执行 ping 操作
的时间短于 50 毫秒),那么必须考虑使用 HDR 辅助服务器。对于较慢的网络连接,请
考虑使用 RS 辅助服务器。下图显示了刀片服务器配置中 HDR 辅助服务器的示例。
图: 刀片服务器配置中的 HDR 辅助服务器

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 394 -

在前一图中显示的配置中,如果主节点发生故障,但是共享磁盘未损坏而且刀片服务器仍
然可运行,
那么可以将主服务器角色从刀片服务器 A 中的第一台服务器转换为同一刀片服
务器中的另一台服务器。
更改主服务器会导致远程 HDR 辅助服务器的源自动重新路由至
新的主服务器,如下图中所示:
图: 刀片服务器配置中从主服务器故障转移到 SD 辅助服务器

但是,假设前一图中描述的故障不是刀片服务器中的某个刀片故障,而是整台刀片服务器
的故障。在这种情况下,可能需要故障转移到 HDR 辅助服务器。因为 SD 辅助服务器的
启动非常快速,所以可以轻易地添加更多 SD 辅助服务器。请注意,SD 辅助服务器仅可
处理主节点;
当主服务器转换为刀片服务器 B,
那么还可能启动刀片服务器 B 上的 SD 辅
助服务器,如下图所示。
图: 整台刀片服务器发生故障


Enterprise Replication 作为可恢复组的一部分
虽然 Enterprise Replication 不支持操作的 SYNC(同步)方式,但它有能力支持具有多台活
动服务器的环境。在故障转移事件期间,Enterprise Replication 可以协调两台服务器之间的
数据库差异。必须将 Enterprise Replication 视为提高服务器之间同步的方法,因为每

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 395 -
个 Enterprise Replication 系统都维护一个独立的日志记录系统。下图中显示了使
用 Enterprise Replication 的配置。
图: 将 Enterprise Replication 配置为可恢复组的一部分


使用 Enterprise Replication 的高可用性集群配置示例
假设在两个高可用性服务器集群之间需要 Enterprise Replication,请如下所示进行配置:
集群 1:

主服务器

HDR 辅助服务器

SD 辅助服务器 1

SD 辅助服务器 2

RS 辅助服务器 1

RS 辅助服务器 2
集群 2:

主服务器

HDR 辅助服务器

SD 辅助服务器 1

SD 辅助服务器 2

RS 辅助服务器 1

RS 辅助服务器 2
进一步假设每台服务器按照以下约定命名:

前三个字符:企业的名称

第四个字符:主机的简短数字

第 5、第 6 和第 7 个字符:集群编号

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 396 -

第 8、第 9 和第 10 个字符:服务器类型:“pri”表示主服务器,“sec”表示辅
助服务器

第 11、第 12 和第 13 个字符:连接类型:“shm”或“tcp”
例如,名为 srv4_1_pri_shm 的服务器描述如下:

srv = 企业的名称

4 = 主机简短编号

_1_ = 集群编号

pri = 这是一个主服务器

shm = 连接类型使用共享内存通信
sqlhosts 文件中的以下条目将支持上面的配置:
srv4_1_pri_shm onipcshm sun-mach4 srv4_1_pri_shm
srv4_1_sec_shm onipcshm sun-mach4 srv4_1_sec_shm
srv5_1_rss_shm onipcshm sun-mach5 srv5_1_rss_shm
srv5_1_sds_shm onipcshm sun-mach5 srv5_1_sds_shm
srv6_1_rss_shm onipcshm sun-mach6 srv6_1_rss_shm
srv6_1_sds_shm onipcshm sun-mach6 srv6_1_sds_shm
srv_1_cluster group - - i=1
srv4_1_pri_tcp ontlitcp sun-mach4 21316 g=srv_1_cluster
srv4_1_sec_tcp ontlitcp sun-mach4 21317 g=srv_1_cluster
srv5_1_rss_tcp ontlitcp sun-mach5 21316 g=srv_1_cluster
srv5_1_sds_tcp ontlitcp sun-mach5 21317 g=srv_1_cluster
srv6_1_rss_tcp ontlitcp sun-mach6 21316 g=srv_1_cluster
srv6_1_sds_tcp ontlitcp sun-mach6 21317 g=srv_1_cluster

srv4_2_pri_shm onipcshm sun-mach4 srv4_2_pri_shm
srv4_2_sec_shm onipcshm sun-mach4 srv4_2_sec_shm
srv5_2_rss_shm onipcshm sun-mach5 srv5_2_rss_shm
srv5_2_sds_shm onipcshm sun-mach5 srv5_2_sds_shm
srv6_2_rss_shm onipcshm sun-mach6 srv6_2_rss_shm
srv6_2_sds_shm onipcshm sun-mach6 srv6_2_sds_shm
srv_2_cluster group - - i=2
srv4_2_pri_tcp ontlitcp sun-mach4 21318 g=srv_2_cluster
srv4_2_sec_tcp ontlitcp sun-mach4 21319 g=srv_2_cluster
srv5_2_rss_tcp ontlitcp sun-mach5 21318 g=srv_2_cluster
srv5_2_sds_tcp ontlitcp sun-mach5 21319 g=srv_2_cluster
srv6_2_rss_tcp ontlitcp sun-mach6 21318 g=srv_2_cluster

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 397 -
srv6_2_sds_tcp ontlitcp sun-mach6 21319 g=srv_2_cluster
复杂故障转移恢复策略的示例
本主题描述了用于在出现较大区域范围灾难时,实现最大可用性的三层服务器方法。
通常,HDR 辅助服务器提供 SD 辅助服务器的备份,并支持在地理位置上距离主系统较
远的高度可用系统。RS 辅助服务器为 HDR 辅助服务器提供附加可用性,并视为灾难可
用性解决方案。如果必须使用 RS 辅助服务器确保可用性,那么将强制您通过执行备份与
复原来手动重新构建其他系统,以恢复正常运行。要进一步理解此内容,将提供出现较大
范围灾难的场景,例如风暴。
要提供最大可用性以免受区域性灾难的影响,需要分层可用性。第一层提供的可用性解决
方案可处理短时间的本地故障。例如,这可能包括将一些刀片服务器连接到运行 SD 辅助
服务器的单个磁盘子系统。将 SD 辅助服务器放置在校园内的多个位置可在发生本地中断
时提供无缝故障转移。
您可能想要添加第二层,通过包含带有其自身磁盘副本的备用位置来提高可用性。要防护
较大范围的灾难,您可能需要考虑配置位于较远位置(可能几百英里)的 HDR 辅助服务
器。也可能想要使用远程系统作为刀片服务器或某些其他多服务器系统。如果发生故障转
移并且远程 HDR 辅助服务器成为主服务器,那么通过提供第二层可轻松启动远程站点上
的 SD 辅助服务器。
但是,即使是两层的方法也可能不够用。某个区域内的飓风会在几百公里外生成龙卷风。
要防护这种情况,请考虑添加第三层保护,例如位于数千英里的 RS 辅助服务器。此三层
方法提供了可很大程度减少中断风险的额外冗余。
图: 三层服务器可用性的配置

现在假设新奥尔良校园的建筑物 A 中发生了本地中断。
可能是机房内的水管破裂使水对刀

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 398 -
片服务器和共享磁盘子系统的主副本造成了损害。通过运行 onmode -d 以使主服务器名位
于建筑物 B 中的刀片服务器上运行的某台 SD 辅助服务器上来将主服务器的角色切换为
建筑物 B。这将导致其他所有辅助节点自动连接到新的主节点。
图: 第一层保护

如果新奥尔良发生了区域性中断,导致建筑物 A 和建筑物 B 均丢失,那么您可以将主服
务器角色切换至孟菲斯。
此外,
您也可能使丹佛进入到 HDR 辅助服务器,
并可将附加 SD
辅助服务器添加到孟菲斯中的机器。
图: 第二层保护

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 399 -

影响两个站点的更大型中断应需要切换至最远的系统。
图: 第三层保护

表 1. 各种需求的建议配置
要求
建议配置
必须定期增大报告容量
请使用 SD 辅助服务器
您使用的是提供足够磁盘硬件可用性的 SAN
设备,但是担心发生服务器故障
请使用 SD 辅助服务器
您使用的是提供足够磁盘硬件镜像的 SAN 设
考虑使用在两个站点上运行 SD 辅助服务

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 400 -
要求
建议配置
备,但是也需要当主操作丢失(并且镜像磁盘
的限制不是问题)时能够恢复联机状态的第二
组服务器
器的两台刀片服务器中心
您需要具有距离适中的备份站点,但不能容忍
故障转移期间出现任何数据丢失
考虑使用两台刀片服务器中心,
SD 辅助服
务器在主刀片服务器中心上,HDR 辅助服
务器在远程刀片服务器上。
您需要具有未曾丢失事务的高度可用系统,但
是还必须在世界的另一面上设置远程系统
考虑使用针对数据复制运行完全同步方式
或接近同步方式的本地 HDR 辅助服务器,
并同时在世界另一端使用 RS 辅助服务
器。
您需要具有高可用性解决方案,但是因为您所
在区域中的网络,ping 的最佳响应时间为大约
200 ms
考虑使用 RS 辅助服务器
您需要备份站点,但不具有与备份站点之间的
任何直接通信
考虑使用带有备份与复原的“连续日志复
原”
只要数据最终能够到达目的地,您就能够忍受
数据交付过程中的延迟;但是在任何情况下都
必须具有快速故障转移
考虑使用硬件磁盘镜像与 ER 相结合的
SD 辅助服务器。
您需要其他写处理能力,能够容忍这些写操作
交付中有些延迟,需要高度可用的事务并能够
分割工作负载
考虑使用带有 SD 辅助服务器的 ER
高可用性集群环境故障诊断
高可用性集群环境与独立服务器环境相比,需要很少甚至不需要额外的故障诊断。 本主题
说明了用于描述高可用性集群环境的术语,并提供了一些常见的故障诊断过程。
可以使用诊断工具显示高可用性环境的配置,
并验证是否正确设置辅助服务器来更新数据。

服务器会快速处理事务。onstat 命令只在运行瞬间显示状态信息。
为了更新辅助服务器上的数据,GBase 8s 在主数据库服务器和辅助数据库服务器上创建了
代理分发器。为每个代理分发器都分配了一个在集群内唯一的标识。 代理分发器负责将

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 401 -
DML 更新请求从辅助服务器发送至主服务器。 辅助服务器根据辅助服务器的 onconfig 文
件中的 UPDATABLE_SECONDARY 设置确定要创建的代理分发器的实例数。
对于高可用性集群环境中的可更新辅助服务器,从可更新辅助服务器到主服务器的加密需
要 SMX 加密。要加密从可更新辅助服务器发送到主服务器的数据,请在辅助服务器上设
置 ENCRYPT_SMX 配置参数。请参阅启用 SMX 加密以获取更多信息。
在高可用性集群中初始化可更新的辅助服务器时,该服务器将保持快速恢复方式,直到所
有打开的事务(包括已打开和已准备好的 XA 事务)完成为止。处于快速恢复方式时,应
用程序不能连接到该服务器。在所有已打开的事务落实或回滚之前,服务器将保持快速恢
复方式。
在主服务器上使用 onstat -g proxy 命令查看有关高可用性集群中所有代理分发器的信息。
onstat -g proxy

Secondary Proxy Reference Transaction Hot Row
Node ID Count Count Total
serv2 392 0 2 112
serv2 393 0 2 150
检查前一示例中 onstat 命令的输出,两个代理分发器的标识为 392 和 393. 事务计数显示
每个代理分发器当前正在处理的事务数。
在辅助服务器上运行 onstat -g proxy,以便查看有关能够为来自辅助服务器的更新请求提供
服务的代理分发器的信息。
onstat -g proxy

Primary Proxy Reference Transaction Hot Row
Node ID Count Count Total
serv1 392 0 2 112
serv1 393 0 2 150
在此示例中,服务器是共享磁盘 (SD) 辅助服务器,并且已配置为更新数据。 另外,服务
器被连接到命名为 serv1 的主服务器。并且具有两个代理分发器,每个的事务计数为 2。
在主服务器上使用 onstat -g proxy all,以便显示有关代理分发器和代理线程的信息。代理分
发器创建了一个或多个代理线程以用于处理来自辅助服务器的数据更新。
onstat -g proxy all

Secondary Proxy Reference Transaction Hot Row
Node ID Count Count Total
serv2 392 0 2 1

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 402 -
serv2 393 0 2 0

TID Flags Proxy Source Proxy Current sqlerrno iserrno
ID SessID TxnID Seq
63 0x00000024 392 22 1 5 0 0
64 0x00000024 392 19 2 5 0 0
62 0x00000024 393 23 1 5 0 0
65 0x00000024 393 21 2 5 0 0


在 onstat -g proxy all 命令输出中,TID 表示在主服务器上运行的代理线程的标识。 Source
SessID 表示辅助服务器上的用户会话标识。
Proxy TxnID 显示当前事务的序号。
每个 Proxy
TxnID 对于代理分发器而言都是唯一的。
Current® Seq 表示正在处理的事务中当前操作的序
号。每个发送至辅助服务器的数据库事务都被从内部分成一个或多个操作,然后将这些操
作发送至主服务器。 最后两个字段 sqlerrno 和 iserrno 显示在事务中遇到的任何 SQL 或
ISAM/RSAM 错误。 错误数 0 表示完成且没有错误。
在辅助服务器上运行 onstat -g proxy all 会显示有关当前可更新辅助服务器上数据的所有会
话的信息。
onstat -g proxy all

Primary Proxy Reference Transaction Hot Row
Node ID Count Count Total
serv1 3466 0 0 1
serv1 3465 0 1 0

Session Proxy Proxy Proxy Current Pending Reference
ID TID TxnID Seq Ops Count
19 3465 67 1 23 0 1
在辅助服务器上运行的 onstat -g proxy all 命令生成的输出中,Session 表示该辅助服务器上
的用户会话标识。
Proxy ID 和 Proxy TID 与在主服务器上显示的一样。
Pending Ops 显示正
在等待传送至主服务器的操作数。 Reference Count 显示该事务正在使用的线程数。
当 Reference Count显示 0 时,表示事务处理已完成。
要显示由给定分发器执行的当前工作的详细信息,请使用:
onstat -g proxy [proxy transaction id] [operation number]
代理事务标识和操作编号都是可选参数。 如果已提供,那么第一个编号将视为代理事务标
识。 如果其后有第二个编号,那么会将此编号解释为操作编号。 如果没有代理事务标识,

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 403 -
该命令执行的任务与以下命令相同:onstat -。与此类似,如果针对给定代理事务标识不存
在此类操作编号,那么该命令执行的任务与以下命令相同:onstat -。
使用以下命令显示服务器是否配置为允许对数据进行更新的相关信息。
该命令可以在主服
务器或辅助服务器上运行:
onstat -g
示例:
onstat -g rssonstat -g sds
onstat -g dri
使用来自于主服务器的设置来配置连接管理器
这常常有助于通过与主服务器上相同的配置参数来配置连接管理器实例。
这在现有应用程
序指向主服务器,且不希望将这些应用程序重新编译为指向连接管理器时很有用。 通过使
用接下来的过程,配置连接管理器实例,以便现有应用程序连接到连接管理器而不是主服
务器。
对于此示例:

尚未配置连接管理器实例。

您拥有主数据库服务器、HDR 辅助服务器、SD 辅助服务器和 RS 辅助服务器。

主服务器的 DBSERVERNAME 为 myserv

服务名称为 5656
要将所有服务器迁移至新的主服务器 DBSERVERNAME:
1. 使用 DBSERVERNAME 和新的主服务器的服务名称更新所有辅助服务器上的
sqlhosts 文件。
现有 sqlhosts 文件:
#dbservername nettype hostname servicename
options
myserv protocol host 5656
修改的 sqlhosts 文件:
#dbservername nettype hostname servicename
options
myserv_pri protocol host 5656
2. 在连接管理器服务器上,按照如下所示编辑 sqlhosts 文件:
#dbservername nettype hostname servicename options
myserv protocol host 5656

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 404 -
3. 在连接管理器服务器上,编辑连接管理器配置文件以设置连接管理器实例的名称:
NAME myserv
SLA ...
LOG ...
LOGFILE ...
请注意连接管理器“名称”和相应的 sqlhosts 文件值与原先主服务器的相同。 这
使客户机应用程序可以连接到连接管理器而无需重新编译应用程序。
4. 启动连接管理器:oncmsm
5. 关闭 SD 辅助服务器和主服务器。
6. 在主服务器上,更新 onconfig 文件中的 DBSERVERNAME 配置参数:
原有的:
DBSERVERNAME myserv
新的:
DBSERVERNAME myserv_pri
7. 使用以下命令启动主服务器:oninit -SDS=myserv_pri
8. 使用 oninit 命令启动 SD 辅助服务器。
9. 在 RS 辅助服务器上,关闭服务器,然后以物理恢复方式启动:oninit -PHY
10.
在 RS 辅助服务器上,通过以下命令连接到主服务器:onmode -d RSS myserv_pri
对于 HDR 辅助服务器,不需要更多设置,因为会自动重新建立 HDR 对。 然而,可以执
行步骤 6 和 7,以便在 HDR 辅助服务器中注册新的主服务器名称。
设计数据复制组客户机
本主题说明了针对连接至正在运行数据复制的数据库服务器的客户机的各种设计注意事
项。
另请参阅辅助服务器上的隔离级别,以获取有关辅助服务器上的 COMMITTED READ 和
COMMITTED READ LAST COMMITTED 隔离级别的信息。
用于排序的临时数据库空间和临时表的使用
即使辅助数据库服务器处于只读方式,当它必须排序或创建临时表时也会进行写操作。临
时数据库空间说明数据库服务器在何处找到临时空间以在排序期间使用或用于临时表。
要防止辅助数据库服务器写入处于逻辑恢复方式的数据库空间,您必须采取以下操作:
1. 确保一个或多个临时数据库空间存在。
有关创建临时数据库空间的指示信息,请参阅创建使用缺省页大小的数据库空间。

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 405 -
2. 执行以下操作之一:
22. 将辅助数据库服务器的 onconfig 文件中的 DBSPACETEMP 参数设置为临时数据
库空间或数据库空间。
23. 将客户机应用程序的 DBSPACETEMP 环境变量设置为临时数据库空间或数据库
空间。
在辅助服务器(SD 辅助服务器、RS 辅助服务器和 HDR 辅助服务器)上创建的临时表必
须通过 WITH NO LOG 选项来创建。或者,在辅助服务器上将 TEMPTAB_NOLOG 配置
参数设置为 1,以便将临时表的缺省日志记录方式更改为无日志记录。 在启用日志记录的
情况下创建的表将导致 ISAM 错误。
对于 SD 辅助服务器,
设置 SDS_TEMPDBS 配置参数以配置 SD 辅助服务器使用的临时
数据库空间。
对于 SD 辅助服务器,不需要显式添加临时数据库空间,因为启动辅助服务器时,该服务
器会分配由 SDS_TEMPDBS 指定的块。只需要准备用于接受块的设备。
如果高可用性集群中的主服务器发生故障,并且 SD 辅助服务器作为主服务器接管,那么
SD 辅助服务器上为 SDS_TEMPDBS 配置参数设置的值将用于临时数据库空间,
直到服务
器重新启动。
必须确保 SD 辅助服务器上为 SDS_TEMPDBS 配置参数指定的值与主服务
器上指定的值不同。重新启动 SD 辅助服务器之后,将使用 DBSPACETEMP 配置参数。

这些主题说明如何执行涉及管理共享内存的以下任务:
 设置共享内存配置参数
 设置共享内存
 为数据库服务器共享内存的常驻部分打开或关闭驻留
 将段添加到共享内存的虚拟部分
 为关键活动预留内存
 在具有内存限制的应用程序中保留目标内存量
 监视共享内存
这些主题未涵盖 DS_TOTAL_MEMORY 配置参数。此参数将给决策支持查询的内存分配
设置上限。有关此参数的信息,请参阅《GBase 8s 性能指南》。

onstat -g 命令使用的选项只提供用于支持和调试目的。
每个 onstat -g 命令只能包含这些选
项中的一个。
onstat -g imc 命令打印有关连接到数据库服务器的 GBase 8s MaxConnect 实例的信息。如
果GBase 8s MaxConnect 未连接数据库服务器,那么该命令显示 No MaxConnect 服务器已
连接。
onstat -g nta 命令打印来自 -g ntd 、-g ntm 、-g ntt 和 -g ntu 命令的合并的网络统计信息。
如果安装了 GBase 8s MaxConnect ,那么该命令打印您可以用来调整 GBase 8s
MaxConnect 性能的统计信息。
onstat -g act 命令:打印活动线程
使用 onstat -g act 命令显示有关活动线程的信息。
语法:

以下是 onstat -g act 命令输出的样本。有关输出的描述,请参阅 onstat -g ath 命令:打印
所有线程的信息。
示例输出

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 481 -

图: onstat -g act 命令输出

onstat -g afr 命令: 打印分配的内存分片
使用 onstat -g afr 命令显示有关指定会话或共享内存池的已分配内存分片。向每个会话分
配一个共享池。
语法:

该命令需要一个额外的参数来指定池名称、会话 ID 或池地址。每个会话都分配了于会话
ID 名称相同的内存池。
pool_name 是共享内存池的名称。可运行 onstat -g mem 命令标识池的名称。
sessionid 是会话 ID 。可运行 onstat -g ses 命令标识会话 ID。
pool_address 是共享内存池的地址。
可运行 onstat -g mem 命令或 onstat -g ses 命令标识池
的地址。
示例输出
图: onstat -g afr 命令输出

输出描述
addr (hexadecimal)
池分片的内存地址
size (decimal)
以字节表示的池分片的大小
memid (string)
池分片的内存 ID
fileid (decimal)
仅限内部使用。代码文件标识分配

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 482 -

location (string)
仅限内部使用。分配代码中的行号
onstat -g all 命令:打印诊断信息
使用 onstat -g all 命令收集由 GBase Support 建议的诊断信息。为了能够正常管理,应该
只使用带有个别选项的 onstat -g 命令。
语法:

onstat -g aqt 命令:打印数据集和加速查询表的信息
使用 onstat -g aqt 命令来显示有关数据集和向管理的加速查询表(AQT)的信息。
语法:

示例输出
图: onstat -g aqt 命令输出
AQT Dictionary Cache for database school:

mart: school
accelerator: DWAFINAL
last load: 2011/07/29 07:00:39

AQT name FactTab #tab #matched address

--------------------------------------------------------------------------------
aqt4d11b552-7d41-4b0c-824b-7714b6cb580a 103 1 328 0x4d187e08
aqt61498fab-3617-4c8c-ab40-fd8af4253998 103 2 42 0x4d84a448
aqtbc2da77c-bca8-4ce7-9191-8180a860da34 103 2 768 0x4d187f60
aqt88757e9d-81ee-43b4-87b2-0bf48c98fa55 103 3 15 0x4d84a190
aqta786d0dc-8e95-4de0-a1bd-773aa03a52db 103 3 1475 0x4d84a650
aqt8dd61c80-2c1c-4f0e-8f0c-91babe789f41 103 4 632 0x4d84a908

mart: school2
accelerator: DWAFINAL
last load: 2011/07/29 07:01:04

AQT name FactTab #tab #matched address

--------------------------------------------------------------------------------
aqt56d5aea7-32f4-44e6-8d98-02a7af37630f 103 1 845 0x4d84ac70
aqt03ec4c20-7ba8-4c3a-ae56-4134b005269d 103 2 27 0x4d95c298
aqt4ae7c2fd-5b94-423d-bc49-9ca3f5f38799 103 2 3912 0x4d84adc8
aqt5ed69a75-15e3-45cc-9892-4f5386257895 103 3 83 0x4d95c4a0
aqtdf314aa6-177d-4443-9f6d-f14ba766995a 103 3 37 0x4d95c028
aqt7e36b1f2-4646-4075-ac0b-5fdee475cd7e 103 4 518 0x4d95c758


GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 483 -

mart: school3
accelerator: DWAFINAL
last load: 2011/07/29 07:01:50

AQT name FactTab #tab #matched address

--------------------------------------------------------------------------------
aqt92b36a8a-1567-4146-833c-385cd103f5d4 103 1 678 0x4d95cac0
aqt3189bec1-b6c9-417d-b969-92c687ef2e44 103 2 59 0x4d95cc18
aqt8d3b3dc8-59b6-4e34-822b-75b06b99c900 103 2 4487 0x4d90c0d8
aqt5f9c2a05-9131-4738-a929-036fcf77f65c 103 3 71 0x4d90c2e0
aqtee08ed16-6a5c-4478-ac57-fc4f99539c74 103 3 795 0x4d95ce20
aqt04d1c96a-022b-4ed7-938d-caf765bc9926 103 4 367 0x4d90c598

18 entries
如果对可选 aqt_name 参数使用 AQT 名称,那么该命令打印指定的 AQT 的信息。
图: onstat -g aqt aqt_name 命令输出
AQT: aqt6de1afdd-f10a-45b0-93e9-0c208405fefd
database: iwadb
AQT tabid: 125
Fact table: 111
Number of times matched: 8947

Join structure: alias(tabid)[colno,...] = alias(tabid)[colno,...] {u:unique}
0(111)[1] = 1(110)[1] u
1(110)[2] = 2(109)[1] u
2(109)[5] = 3(101)[1] u
3(101)[3] = 4(100)[1] u
0(111)[2] = 5(106)[1] u
5(106)[2] = 6(103)[1] u
5(106)[3] = 7(104)[1] u
5(106)[4] = 8(105)[1] u
8(105)[3] = 9(101)[1] u
9(101)[3] = 10(100)[1] u
5(106)[5] = 11(102)[1] u
0(111)[2,3] = 15(108)[1,2] u
15(108)[1] = 16(106)[1] u
16(106)[2] = 17(103)[1] u
16(106)[3] = 18(104)[1] u
16(106)[4] = 19(105)[1] u
19(105)[3] = 20(101)[1] u
20(101)[3] = 21(100)[1] u

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 484 -

16(106)[5] = 22(102)[1] u
15(108)[2] = 23(107)[1] u
23(107)[2] = 24(101)[1] u
24(101)[3] = 25(100)[1] u
0(111)[3] = 12(107)[1] u
12(107)[2] = 13(101)[1] u
13(101)[3] = 14(100)[1] u
输出描述
AQTs 按照其所属数据集分组。这些组先按照加速程序名称排序,再按数据集名称排序。
在数据集组中,
AQTs 按以下顺序排序:
Fact table tabid (FactTab)、
表的数量 (#tab) 和 AQT
名称。
来自字典高速缓存的输出参考了 AQTs 的数据集。输出仅在 AQTs 加载到字典高速缓存
中时显示,这种情况通常在对 AQTs 查询匹配时发生。
在数据库尝试对 AQTs 进行匹配查询之前,
AQTs 在字典高速缓存中没有任何条目。
onstat
-g aqt 命令不会在输出中显示任何条目。当在数据库服务器启动时初始化字典高速缓存时,
#matched 和 address 列得到新的值。
onstat -g aqt 命令打印以下信息:
mart
数据集的名称
accelerator
加速程序实例名称
last load
上一次数据集加载的时间戳
AQT name
系统生成的唯一的 AQT 名称
FactTab
AQT 实际数据表的 tabid
#tab
属于 AQT 表的数量
#matched
AQT 已发生的查询匹配计数
address
AQT 的内部数据库服务器内存地址
onstat -g aqt aqt_name 命令打印以下信息:
AQT

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 485 -

系统生成的唯一的 AQT 名称
database
AQT 所属数据库的名称
AQT tabid
构成数据库服务器中的 systables 系统目录表中的 AQT 条目的 tabid
Fact table
AQT 真实表的 tabid
Number of times matched
AQT 已发生的查询匹配计数
有关 AQT 信息之后是数据集的星型模式的文本表示。
该文本表示显示了表的列是如何互相
星型联接的。
onstat -g arc 命令:打印归档状态
使用 onstat -g arc 命令显示每个 dbspace 最后提交归档的信息,也显示正在执行归档
的信息。
语法:

示例输出
图: onstat -g arc 命令输出

输出描述 - 正在执行归档
本节的输出代表正在归档的当前的信息。如果系统中没有归档活动,那么不会显示本节的
信息。

描述
Number
Dbspace 编号
Name
Dbspace 名称
Q Size
前映象队列大小。该信息主要为了 GBase 支持

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 486 -


描述
Q Len
前映象队列长度。该信息主要为了 GBase 支持
Buffer
前映象缓冲区使用的页数
Partnum
前映象 bin 分区号
Size
前映象 bin 的页数
Current-page 正在执行归档的当前页

注: 前映象 bin 是在临时 dbspace 或 root dbspace 中创建的表(如果您没有临时
dbspace)。如果前映象 bin 变小,它可以扩展到其他分区,这样将会看到输出显示同一个
dbspace 具有多个 Partnum 和 Size 字段。
输出描述 - 归档状态
本节输出包含每个 dbspace 发生最后一次备份的信息。

描述
Name
Dbspace 名
Number
Dbspace 编号
Level
归档级别
Date
最后一次归档的日期和时间
Log
用来启动归档的 checkpoint 的唯一 ID (UNIQID)
Log-position 用来启动归档的 checkpoint 的日志位置(LOGPOS)

onstat -g ath 命令:打印所有线程的信息
使用 onstat -g ath 命令显示有关所有线程的信息。
语法:

示例输出
图: onstat -g ath 命令输出

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 487 -


输出描述
tid
线程 ID
tcb
线程控制 block 访问地址
rstcb
RSAM 线程控制 block 访问地址
prty
线程优先级
status
线程状态
vp-class
虚拟处理器类
name
线程名称。对于参与并行存储优化操作的线程,它表示操作的名称和线程编号
l compress.number = 线程正在压缩数据
l repack.number = 线程正在重新打包数据
l uncompress.number = 线程正在解压数据
l update_ipa.number = 线程正在移除就地修改操作
onstat -g bth 和 -g BTH:打印阻塞的和正在等待的线程
使用 onstat -g bth 命令显示阻塞和正在等待线程之间的依赖关系。
使用 onstat -g BTH 命令
显示阻塞线程的会话和堆信息。
语法:

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 488 -


onstat -g bth 的示例输出
图: onstat -g bth 命令输出
This command attempts to identify any blocking threads.

Highest level blocker(s)
tid name session
48 sqlexec 26

Threads waiting on resources
tid name blocking resource blocker
49 sqlexec MGM 48
13 readahead_0 Condition (ReadAhead) -
50 sqlexec Lock (0x4411e578) 49
51 sqlexec Lock (0x4411e578) 49
52 sqlexec Lock (0x4411e578) 49
53 sqlexec Lock (0x4411e578) 49
57 bf_priosweep() Condition (bp_cond) -
58 scan_1.0 Condition (await_MC1) -
59 scan_1.0 Condition (await_MC1) -

Run 'onstat -g BTH' for more info on blockers.
onstat -g bth 的输出描述
tid
线程 ID
name
线程名称
session
会话 ID
blocking resource
列出的等待线程的资源类型
blocker
列出的阻塞线程的线程 ID
onstat -g BTH 的示例输出
Stack for thread: 48 sqlexec
base: 0x00000000461a3000
len: 69632
pc: 0x00000000017b32c3
tos: 0x00000000461b2e30
state: ready
vp: 1

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 489 -


0x00000000017b32c3 (oninit) yield_processor_svp
0x00000000017bca6c (oninit) mt_wait
0x00000000019d4e5c (oninit) net_buf_get
0x00000000019585bf (oninit) recvsocket
0x00000000019d1759 (oninit) tlRecv
0x00000000019ce62d (oninit) slSQIrecv
0x00000000019c43ed (oninit) pfRecv
0x00000000019b2580 (oninit) asfRecv
0x000000000193db2a (oninit) ASF_Call
0x0000000000c855dd (oninit) asf_recv
0x0000000000c8573c (oninit) _iread
0x0000000000c835cc (oninit) _igetint
0x0000000000c72a9e (oninit) sqmain
0x000000000194bb38 (oninit) listen_verify
0x000000000194ab8a (oninit) spawn_thread
0x0000000001817de3 (oninit) th_init_initgls
0x00000000017d3135 (oninit) startup
This command attempts to identify any blocking threads.

Highest level blocker(s)
tid name session
48 sqlexec 26

session effective #RSAM total used dynamic
id user user tty pid hostname threads memory memory explain
26 gbasedbt - 45 31041 mors 2 212992 186568 off

Program : /work3/JC/VIEWS/jc_dct_phase2.view/.s/00055/80003fd351f804d3dbaccess

tid name rstcb flags curstk status
48 sqlexec 448bc5e8 ---P--- 4560 ready-
58 scan_1.0 448bb478 Y------ 896 cond wait await_MC1 -

Memory pools count 2
name class addr totalsize freesize #allocfrag #freefrag
26 V 45fcc040 208896 25616 189 16
26*O0 V 462ad040 4096 808 1 1

name free used name free used
overhead 0 6576 mtmisc 0 72
resident 0 72 scb 0 240
opentable 0 7608 filetable 0 1376
log 0 33072 temprec 0 17744
blob 0 856 keys 0 176
ralloc 0 55344 gentcb 0 2240
ostcb 0 2992 sqscb 0 21280
sql 0 11880 xchg_desc 0 1528
xchg_port 0 1144 xchg_packet 0 440
xchg_group 0 104 xchg_priv 0 336
hashfiletab 0 1144 osenv 0 2520

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 490 -

sqtcb 0 15872 fragman 0 1024
shmblklist 0 416 sqlj 0 72
rsam_seqscan 0 368

sqscb info
scb sqscb optofc pdqpriority optcompind directives
4499c1c0 461c1028 0 100 2 1

Sess SQL Current Iso Lock SQL ISAM F.E.
Id Stmt type Database Lvl Mode ERR ERR Vers Explain
26 SELECT jc CR Not Wait 0 0 9.24 Off

Current statement name : unlcur

Current SQL statement (5) :
select * from systables,syscolumns,sysfragments

Last parsed SQL statement :
select * from systables,syscolumns,sysfragments
onstat -g BTH 的输出描述
tid
线程 ID
name
线程名称
session
会话 ID
该会话信息段包含的信息与 onstat -g ses 命令输出的信息相同。请参阅 onstat -g ses 命令:
打印与会话有关的信息。
剩下的信息显示了该线程的堆信息。
onstat -g buf 命令:打印缓冲池的概要文件信息
使用 onstat -g buf 命令来显示每个缓冲池的概要文件信息。
语法:

示例输出
onstat -g buf 命令的输出取决于 BUFFERPOOL 配置参数设置是否包含 memory 字段和
buffers 字段而稍有不同。输出将显示 memory 设置。buffers 设置的输出包含 max extends
和 next buffers 字段,代替了 max memory 和 next memory 字段。
图: 对于 memory 设置的 onstat -g buf 输出
Profile

Buffer pool page size: 2048

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 491 -

dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached
1190 1773 661359 99.82 16863 83049 185805 90.92
bufwrits_sinceckpt bufwaits ovbuff flushes
11243 115 0 42
Fg Writes LRU Writes Avg. LRU Time Chunk Writes Total Mem
0 0 nan 10883 32Mb

cache
# extends max memory next memory hit ratio last
0 128Mb 32Mb 90 11:31:17

Bufferpool Segments
id segment size # buffs
0 0x449f0000 32Mb 13025

----------------------------------

Buffer pool page size: 8192
dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached
0 0 11 100.00 4 16 4 0.00
bufwrits_sinceckpt bufwaits ovbuff flushes
0 0 0 1

Fg Writes LRU Writes Avg. LRU Time Chunk Writes Total Mem
0 0 nan 4 128Mb

cache
# extends max memory next memory hit ratio last
0 1280Mb 128Mb 90 11:31:41
Bufferpool Segments
id segment size # buffs
0 0x4928e000 128Mb 14988
----------------------------------
Fast Cache Stats
gets hits %hits puts
246854 244407 99.01 111147
输出描述
Buffer pool page size
缓冲池中页面的字节数
dskreads
将页面带入缓冲池的已执行你的磁盘读操作数。每次读操作读取一个或多个页面。
pagreads
从磁盘读入缓冲池的页面数
bufreads
从该缓冲池读取的页面内存映象次数
%cached

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 492 -

为满足高速缓存页面映象的该缓冲池读取的页面百分比(而不是执行磁盘读取)。计算为
(bufreads - dskreads) / bufreads x 100。更高的百分比说明有更好的高速缓存性能。
dskwrits
将更改的页面从缓冲池写回磁盘所执行的磁盘写入操作数。每次写入操作撰写一个或多个
页面。
pagwrits
从缓冲池写入磁盘的页面数
bufwrits
写入该缓冲池的页面内存映象次数
%cached
为满足高速缓存页面映象的该缓冲池写入的页面百分比(而不是执行磁盘写入)。计算为
(bufwrits - dskwrits) / bufwrits x 100 。
bufwrits_sinceckpt
自上个 checkpiont 后页面内存映象写入该缓冲池的次数
bufwaits
在该缓冲池内线程必须等待缓冲区内锁的次数。数字越大说明在相同页面上互不兼容的锁
的多个线程之间的争用越多。
ovbuff
为了创建空闲的缓冲区来读取另外一个受请求的页面而将更改了的缓冲区从该缓冲池写入
磁盘的次数。如果 ovbuff 值很大,那么可能说明缓冲池还不够大,还不能容纳使用该缓冲
池的应用程序所需的工作集,这可能导致性能降级。
flushes
服务器为缓冲池内所有 dirty 缓冲区执行的大清空的次数。这可能由不同的原因引起,可
能是作为 checkpoint 过程的一部分而执行此操作或缓冲池在清洁的缓冲区外运行(无论
LRU 清除活动是否正常)。
Fg Writes
该缓冲池中访问缓冲区的非 I/O 清空程序线程写入磁盘的已更改缓冲区的数量。这个数字
是 ovbuff 字段的超集。除了 ovbuff 字段计数的写入服务页面缺省值的次数,该值也包括
为了保持数据库记录和保留页的一致性而执行的操作所做的前台写,其目的是为了保证正
确的恢复。
LRU Writes
由 LRU 清除线程从该缓冲池将更改了的缓冲区写入磁盘的数量。如果缓冲池超过了指定
在 lru_max_dirty 字段中 BUFFERPOOL 配置参数值或如果由于缓冲池溢出而发生前台
写,那么将激活 LRU 清除程序。

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 493 -

Avg. LRU Time
LRU 清除程序用来清除单个 LRU 链所用的平均时间
Chunk Writes
由 Chunk 清除操作将已更改的缓冲区写入磁盘的数量。Chunk 清除程序撰写了所有在缓
冲池中的某个 chunk 内的已更改的缓冲区。这项操作在需要快速清除大量缓冲区(例如
checkpoint 进程和快速恢复)的各种特殊环境中进行。
Total Mem
缓冲池的大小
# extends
缓冲池被扩展的次数
max memory (memory setting)
缓冲池的目标最大大小。该缓冲池的大小可以超过该值,但是不能多于一个分段的大小。
max extends (buffers setting)
缓冲池库被扩展的至多次数。(该字段没有在示例样本中显示)
next memory (memory setting)
缓冲池的下一次要扩展的大小
next buffers (buffers setting)
为该缓冲池下一次扩展所需的缓冲区数 (该字段没有在示例样本中显示)
cache hit ratio
低于该缓冲池被扩展的读缓存的命中率
last
上次缓冲池扩展的时间
id
缓冲池段的 ID
segment
缓冲池段的内部地址
size
缓冲池段的大小
# buffs
缓冲池段中缓冲区数
Fast Cache Stats
快速缓存(减少需要访问缓冲池的时间类型的缓存)的统计信息
gets
服务器在快速缓存中寻找缓冲区的次数

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 494 -

hits
服务器发现它正在寻找快速缓存缓冲区的次数
%hits
hits 的百分比 ,即 hits*100/gets
puts
服务器向快速缓存中插入缓冲区的次数
onstat -g cac 命令:打印有关缓存的信息
使用 onstat -g cac 命令来查看所有缓存或单个缓存的整体和详细信息。
语法:

可以使用不带任何选项的 onstat -g cac 命令查看所有缓存的信息。
使用以下选项来查看特定缓存的信息:
agg
打印有关聚合缓存的信息
aqt
打印有关 AQT 字典高速缓存的信息(它与 onstat -g aqt 命令输出一样的信息)。请参阅
onstat -g aqt 命令:打印数据集和加速查询表的信息
am

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 495 -

打印有关访问方法缓存的信息。可以看到指定访问方法的信息,包括访问方法名称。
cast
打印有关 cast 缓存的信息
dic
打印有关数据字典高速缓存的信息。
也是打印 onstat -g dic 命令输出的信息。
请参阅 onstat
-g dic 命令:打印表信息
dsc
打印有关数据分布式缓存的信息。
也是打印 onstat -g dsc 命令输出的信息。
请参阅 onstat -g
dsc 命令:打印分布式高速缓存信息
ed
打印有关外部命令缓存的信息
lbacplcy
打印有关 LBAC 安全政策信息缓存的信息
lbacusrc
打印有关 LBAC 证书内存缓存的信息
opci
打印有关操作类实例缓存的信息
prc
打印有关 UDR 缓存的信息。
也是打印 onstat -g prc 命令输出的信息。
请参阅 onstat -g prc
命令:打印使用 UDR 或 SPL 例程的会话
prn
打印有关程序名称缓存的信息
rr
打印瞬变的二级缓存的信息
ssc
打印 SQL 语句缓存信息。
也是打印 onstat -g ssc 命令输出的信息。
请参阅 onstat -g ssc 命
令:打印出现的 SQL 语句
ttype
打印二级瞬变缓存的信息
typei
打印由其 ID 缓存的扩展类信息。可以看到指定扩展类的信息,包括扩展类 ID。
typen
打印由其名称缓存的扩展类信息。可以看到指定扩展类的信息,包括扩展类名称。
示例输出
大多数 onstat -g cac 命令的输出包含相似的格式和信息。

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 496 -

以下是一个 onstat -g cac lbacplcy 命令的示例输出:
Security Policy Info Cache:
Number of lists : 31
PLCY_POOLSIZE : 127
Security Policy Info Cache Entries:

list id ref drop hits heap_ptr item
--------------------------------------------------------------
9 2 0 0 0 65f1b8d0 test@gbasesbt: : secpolicyid 2
15 1 0 0 0 65f1b4d0 test@gbasedbt: : secpolicyid 1
Total number of entries : 2
Number of entries in use : 0

输出描述
大多数 onstat -g cac 命令的输出包含以下字段:
Number of lists
分布式缓存中列表数
configuration parameter name
一次可以缓存的条目数
list
分布式缓存哈希链 ID
id
该缓存条目的唯一 ID
ref
引用缓存条目的语句数
drop
当此条目被添加到缓存中后,它是否曾被删除
hits
该缓存条目被访问的次数
heap_ptr
用于存储此条目的堆地址
item name
高速缓存项的名称
Total number of entries
缓存条目的数量
Number of entries in use
正在使用的条目数

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 497 -

onstat -g ckp 命令:打印 checkpoint 历史记录和配置建议
可以使用 onstat -g ckp 命令打印 checkpoint 历史记录,显示配置建议(如果检测到次优的
配置)。
语法:

示例输出
图: onstat -g ckp 命令输出





输出描述
Auto Checkpoints
标示 AUTO_CKPTS 配置参数是 on 或 off
RTO_SERVER_RESTART
显示 RTO 时间(以秒为单位)。零(0)意味着 RTO 是关闭的
Estimated recovery time ## seconds
如果数据服务器停止响应,标示评估恢复时间。该值仅在 RTO_SERVER_RESTART 被激
活时出现。
Interval
Checkpoint 间隔 ID
Clock Time
Checkpoint 发生的 Clock 时间

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 498 -

Trigger
事件触发 checkpoint 。 星号(*)表示请求的 checkpoint 是事务阻塞的 checkpoint 。
触发器名

描述
Admin
管理员相关任务。例如:
l 创建、删除或重命名 dbspace
l 添加或删除 chunk
l 添加或删除日志文件
l 更改物理日志大小和位置
l 分区上 "shrink" 操作之后
l 打开或关闭镜像
Backup
备份相关操作。例如:
l 假备份
l 启动归档
l 完整的物理恢复后
CDR
第一次启动 ER 子系统或在所有复制参与者被移除后,重启 ER 子系统
CKPTINTVL 当 checkpoint 间隔过期。Checkpoint 间隔是在 onconfig 文件中
CKPTINTVL 参数指定的值
Conv/Rev
转换复原 checkpoint 。转换检查阶段后磁盘结构实际实际转换前。复原完
成之后也将触发 checkpoint 。
HA
高可用性。例如:
l 新添加到高可用集群的 RSS 或 SDS 节点
l 提升为主服务器的辅助服务器
l 物理日志文件低的辅助服务器
HDR
高可用性数据复制。例如:
l 更改的服务器方式
l 安装 HDR 后的启动第一次传输
l 有潜在的主或辅助服务器上的物理日志溢出
Lightscan 在分区上关闭观察四周之前
Llog
逻辑日志资源耗尽

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 499 -

触发器名

描述
LongTX
长事务。如果发现长事务未停止,那么会发起 checkpoint 停止该事务。在
回滚过程中,如果在长事务终止后 checkpoint 还未准备发生,那么会在回
滚阶段发起 checkpoint 。
Misc
杂项事件。例如::
l 由于 I/O 错误 dbspace 或 chunk 关闭
l 在回滚过程中,撤销 chunk 的附加部分时。例如:正在移动 chunk
时。
l 聚集索引创建的过程中或变更索引为聚集索引时。
Plog
物理日志具有以下之一的条件:
l 物理日志已满 75%
l 已使用的物理日志量加上脏分区的数量已超出物理日志大小的 90%
Restore Pt 还原点。Checkpoint 在还原点开始和结束。还原点(由转换守护程序使用)
是启用的 CONVERSION_GUARD 配置参数,是 RESTORE_POINT_DIR 配置参数指
定的临时目录。
Recovery
在恢复过程中,快速恢复开始时
Reorg
在联机索引生成开始
RTO
维护恢复时间目标(RTO)协议。在正常操作时,在系统崩溃后重新启动的时
间可能会超过 RTO_SERVER_RESTART 配置参数所设置的值。
Stamp Wrap Checkpoint 时间戳。如果新的 checkpoint 时间戳出现在最后写入的
checkpoint 之前,那么时间戳在 checkpoint 间间隔先进先出。这样会触发
另一个 checkpoint 。
Startup
数据库服务器启动时。
Uncompress 在表或分区上发生解压命令。只在表中的 checkpoint 或 没有日志记录的数
据库中应用。
User
用户提交 checkpoint 请求

LSN

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 500 -

Checkpoint 记录在逻辑日志中的位置
Total Time
以秒表示 checkpoint 持续的总时间,从请求开始到 checkpoint 结束
Flush Time
以秒表示清除缓冲池的时间
Block Time
由于 checkpoint 被稀缺的必需资源触发而导致事务阻塞的时间(以秒表示)。例如:耗尽
物理日志或环绕逻辑日志
# Waits
由于正在等待 checkpoint 而阻塞的事务的数量
Ckpt Time
以秒表示所有事务认识到请求的 checkpoint 的时间
Wait Time
以秒表示该事务已等待 checkpoint 的平均时间
Long Time
以秒表示事务等待 checkpoint 的最长时间
# Dirty Buffers
在 checkpoint 期间,刷新到磁盘的 dirty 缓冲区的数量
Dskflu/sec
每秒刷新的缓冲区数
Physical Log Total Pages
在 checkpoint 间隔,物理日志记录的总页数
Physical Log Avg/Sec
在 checkpoint 间隔,物理日志活动的平均率
Logical Log Total Pages
在 checkpoint 间隔,逻辑日志记录的总页数
Logical Log Avg/Sec
在 checkpoint 间隔,逻辑日志活动的平均率
Max Plog pages/sec
在 checkpoint 间隔,物理日志活动的最大速率
Max Llog pages/sec
在 checkpoint 间隔,逻辑日志活动的最大速率
Max Dskflush Time
以秒表示缓冲池刷新到磁盘的最长时间
Avg Dskflush pages/sec

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 501 -

缓冲池刷新到磁盘的平均速率
Avg Dirty pages/sec
在 checkpoint 之间 dirty 页的平均速率
Blocked Time
以秒表示自上次数据库服务器启动后最长阻塞时间
性能建议消息
如果 GBase 8s 数据服务器检测到一个次优的配置,那么在 checkpoint 历史记录下会出现
一个有关性能调整的建议消息。该性能建议也在消息日志中出现。以下是性能建议消息的
示例:

onstat -g cfg 命令:打印配置参数的当前值
使用 onstat -g cfg 命令打印配置参数当前值列表。可以使用更多命令选项以打印更多有关
配置参数的信息。
语法:

onstat -g cfg 命令具有以下格式:
onstat -g cfg 命令选项:
命令
描述
onstat -g cfg
显示配置参数当前值列表
onstat -g cfg
config_parameter_name
只显示指定的配置参数的当前值

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 502 -

命令
描述
onstat -g cfg full
显示每个配置参数的所有信息,
包括当前值、
缺省值、

onconfig 文件值和参数描述
onstat -g cfg full
config_parameter_name
显示指定参数的所有信息
onstat -g cfg diff
显示配置参数当前值不同于其在 onconfig 文件中
的永久值的信息
onstat -g cfg tunable
显示所有可调整参数的缺省值、源值和当前值。星号
(*)表示您可以动态调整该配置参数
onstat -g cfg msg
显示任意消息,例如:与配置参数相关的警告或调整

示例输出
以下是 onstat -g cfg 命令显示数据库启动后 DEADLOCK_TIMEOUT 配置参数值被动态
更改为 90 的输出样本:
id name type units rsvd tunable
26 DEADLOCK_TIMEOUT INT4 Seconds *

min/max : 0,2147483647
default : 60
onconfig:
current : 90

Description:
Use the DEADLOCK_TIMEOUT configuration parameter to specify the
maximum number of seconds that a database server thread can wait to acquire a lock.
ROOTNAME rootdbs

以下是 onstat -g cfg diff 命令显示 TBLTBLFIRST 和 TBLTBLNEXT 配置参数的缺省
值、当前值和其在 onconfig 文件中的值的输出样本:
id name type units rsvd tunable
53 TBLTBLFIRST INT4 KB *
default : 500
onconfig: 0

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 503 -

current : 250

id name type units rsvd tunable
54 TBLTBLNEXT INT4 KB *
default : 100
onconfig: 0
current : 150
以下是显示有关 MSGPATH 配置参数的信息的输出样本。
在这里,
没有建立该配置参数的
缺省值、当前值及其 onconfig 文件:
id name type units rsvd tunable
10 MSGPATH CHAR * *
default :
onconfig: /work2/JC/online.log
current : /work2/JC/online.log
以下是 onstat -g cfg msg 命令显示标识已更改值的配置参数的消息的输出样本:
Configuration Parameters With Messages
name message
TBLTBLFIRST Parameter's user-configured value was adjusted.
TBLTBLNEXT Parameter's user-configured value was adjusted.
BUFFERPOOL Parameter's user-configured value was adjusted.
STACKSIZE Parameter's user-configured value was adjusted.
VPCLASS Parameter's user-configured value was adjusted.
输出描述
name
配置参数名称
type
值的数据类型
units
值表示的单位
rsvd
标示(带星号)配置参数及其值存储在配置驻留页中
如果没有星号,那么该配置参数及其值不存储在配置驻留页中
tunable
标示(带星号)此配置参数可以动态调整。例如:使用 onmode -wm 或 -wf 命令

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 504 -

如果没有星号,那么该配置参数不能被动态地修改
min/max
配置参数的最大值和最小值
default
建立到服务器中配置参数的缺省值
onconfig
配置参数值,任和值都在 onconfig.std 文件中
current
配置参数的当前值
如果动态修改了该值,其当前值是不同的。例如:使用 onmode -wm 命令
Description
配置参数的描述
message
标识一个已更改的配置参数值的消息
onstat -g cluster 命令:打印高可用集群信息
可以使用 onstat -g cluster 命令显示有关在高可用集群环境下的服务器的信息。
语法:

onstat -g cluster 命令合并了 onstat -g dri 、onstat -g sds 和 onstat -g rss 的功能。 onstat -g
cluster 命令的输出根据该命令是在主服务器或在其它任一辅助服务器上运行而稍有不同。
示例输出(主服务器)
以下 onstat -g cluster 命令的示例输出。该示例显示了命令运行在主服务器上的输出。
图: onstat -g cluster 命令输出(自主服务器上运行)

输出描述(主服务器)
Primary server
分配的主服务器的名称

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 505 -

Current log page
当前日志页的日志 ID 和页数
Index page logging status
指示索引页日志记录是否启用或禁用
Index page logging was enabled at
启用索引页日志记录的日期和时间
Server
辅助服务器的名称
ACKed Log (log, page)
最后一次应答日志传输的日志 ID 和页数
Applied Log (log, page)
最后一次应用日志传输的日志 ID 和页数
Supports Updates
显示客户端应用程序是否可以在辅助服务器上执行修改、插入和删除操作(由
UPDATABLE_SECONDARY 配置参数指定)。
Status
显示辅助服务器的连接状态
示例输出(主服务器,详细输出)
图: onstat -g cluster verbose 命令输出(自主服务器上运行)
以下是 onstat -g cluster verbose 命令的示例输出。
该输出显示此命令在主服务器上运行,

带有详细的选项。
Primary Server:serv1

Current Log Page:16,479

Index page logging status: Enabled

Index page logging was enabled at: 2013/12/11 14:05:17





-----------------------------------------------------------



server name: serv3

type: ASYNC (HDR)

control block: 0x4b673018

server status: On

connection status: Connected

Last log page sent (log id, page): 16,479

Last log page acked (log id, page); 16,479

Last log page applied (log id, page); 16,479

Approximate log page backlog: 0

SDS cycle not used

Delayed Apply Not Used

Stop Apply Not Used

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 506 -


Time of last ack: 2013/12/11 14:09:12

Supports Updates: Yes

-----------------------------------------------------------

server name: serv2

type: SYNC (SDS)

control block: 0x4c2de0b8

server status: Active

connection status: Connected

Last log page sent (log id, page): 16,479

Last log page acked (log id, page); 16,479

Last log page applied (log id, page); 16,479

Approximate log page backlog: 0

SDS cycle current: 20 ACKed: 20

Delayed Apply Not Used

Stop Apply Not Used

Time of last ack: 2013/12/11 14:09:13

Supports Updates: Yes
输出描述(主服务器,详细输出)
Primary server
主服务器名
Current log page
当前日志页的日志 ID 和页数
Index page logging status
指示索引页日志记录是否启用或禁用
Index page logging was enabled at
启用索引页日志记录的日期和时间
Server name
辅助服务器的名称
type
显示该辅助服务器的连接是同步(SYNC)还是异步(ASYNC)。也显示辅助服务器的类
型:HDR 、SDS 或 RSS
control block
线程控制 block 的在内存中的地址
server status
显示辅助服务器的当前状态
connection status
显示辅助服务器的当前网络连接状态
Last log page sent (log id, page)
最近一次主服务器发送到辅助服务器的日志页的日志 ID 和页数
Last log page acked (log id, page)
辅助服务器最近应答的日志页的日志 ID 和页数

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 507 -

Last log page applied (log id, page)
辅助服务器最近应用的日志页的日志 ID 和页数
Approximate log page backlog
指示还未被辅助服务器处理的日志页的大概数目
SDS cycle
指示共享磁盘辅助服务器已确认的周期数和主服务器具有先进的循环次数。
由 GBase 支持
用于监控主服务器和辅助服务器的协调性。
Delayed Apply
指示该辅助服务器在应用日志前是否等待特定的时间量(通过 DELAY_APPLY 配置参数
指定)
Stop Apply
指示该辅助服务器是否已停止应用从主服务器接收的日志文件(通过 STOP_APPLY 配置
参数指定)
Time of last ack
最后一次通知日志的日期和时间
Supports Updates
显示客户端应用程序是否可以在辅助服务器上执行修改、插入和删除操作(由
UPDATABLE_SECONDARY 配置参数指定)
示例输出(辅助服务器)
以下是 onstat -g cluster 命令的输出示例。该示例显示命令在辅助服务器上运行的输出。
图: onstat -g cluster 命令输出(自辅助服务器上运行)
Primary Server:serv1
Index page logging status: Enabled
Index page logging was enabled at: 2010/01/11 14:05:17
Server ACKed Log Applied Log Supports Status

(log, page) (log, page) Updates
serv2 16,479 16,479 Yes SYNC(SDS),Connected,Active
输出描述(辅助服务器)
Primary server
主服务器的名称
Index page logging status
指示索引页日志记录是否启用或禁用
Index page logging was enabled at
启用索引页日志记录的日期和时间
Server

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 508 -

辅助服务器的名称
ACKed Log (log, page)
最后一次应答日志传输的日志 ID 和页数
Applied Log (log, page)
最后一次应用日志传输的日志 ID 和页数
Supports Updates
显示客户端应用程序是否可以在辅助服务器上执行修改、插入和删除操作(由
UPDATABLE_SECONDARY 配置参数指定)
Status
显示辅助服务器的连接状态
onstat -g cmsm 命令:打印连接管理器的信息
使用 onstat -g cmsm 命令显示有关指定的连接管理器的信息,或附加在运行该命令的数据
库服务器的所有连接管理器的信息。
语法:

用法
onstat -g cmsm 显示连接连接管理器的连接单元、
每个连接管理器服务等级协议
(SLA)

理的连接数、SLA 定义、故障切换顺序规则、故障转移仲裁以及主服务器状态。
使用 connection_manager_name 来显示指定的连接管理器实例的信息。如果没有指定
connection_manager_name ,onstat -g cmsm 显示所有连接数据库服务器的连接管理器的信
息。
示例输出 1:指定的连接管理器的输出
在以下示例中,onstat -g cmsm connection_manager_1 在主服务器的 my_cluster_1
上运行:
Unified Connection Manager: connection_manager_1 Hostname: my_host_1
CLUSTER my_cluster_1 LOCAL
SLA Connections Service/Protocol Rule
oltp_1 35 19910/onsoctcp DBSERVERS=primary
report_1 33 19810/onsoctcp DBSERVERS=(HDR,SDS,RSS)

Failover Arbitrator: Active Arbitrator, Primary is up ORDER=SDS,HDR,RSS PRIORITY=1

该命令显示 connection_manager_1 的输出。
connection_manager_1 管理一个 CLUSTER 连
接单元,并且是主故障转移仲裁者。
示例输出 2:高可用性集群的输出

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 509 -

在以下示例中,onstat -g cmsm 在主服务器的 my_cluster_2 上运行:
Unified Connection Manager: connection_manager_2 Hostname: my_host_2

CLUSTER my_cluster_2 LOCAL
SLA Connections Service/Protocol Rule
sla_1 1535 19910/onsoctcp DBSERVERS=primary
sla_2 2133 19810/onsoctcp DBSERVERS=(HDR,SDS,RSS)

Failover Arbitrator: Active Arbitrator, Primary is up
ORDER=SDS,HDR,RSS PRIORITY=1

CLUSTER my_cluster_3
SLA Connections Service/Protocol Rule
sla_3 730 19930/onsoctcp DBSERVERS=primary
sla_4 901 19830/onsoctcp DBSERVERS=(HDR,SDS,RSS)

Failover Arbitrator: Active Arbitrator, Primary is up
ORDER=SDS,HDR,RSS PRIORITY=1

Unified Connection Manager: connection_manager_3 Hostname: my_host_3

CLUSTER my_cluster_2 LOCAL
SLA Connections Service/Protocol Rule
sla_5 614 19920/onsoctcp DBSERVERS=primary
sla_6 483 19820/onsoctcp DBSERVERS=(HDR,SDS,RSS)

Failover Arbitrator: Failover is enabled
ORDER=SDS,HDR,RSS PRIORITY=2

CLUSTER my_cluster_3
SLA Connections Service/Protocol Rule
sla_7 678 19940/onsoctcp DBSERVERS=primary
sla_8 270 19840/onsoctcp DBSERVERS=(HDR,SDS,RSS)

Failover Arbitrator: Failover is enabled
ORDER=SDS,HDR,RSS PRIORITY=2
该命令显示连接到主服务集群的两台连接管理器。connection_manager_2 和
connection_manager_3 安装在不同的主机上,
并且它们一起管理两个 CLUSTER 连接单元。
connection_manager_2 是这些 CLUSTER 连接单元的主故障转移仲裁者。
示例 3:复制设置的输出
在以下示例中,onstat -g cmsm 在复制服务器的 my_replicate_set_1 中运行。
Unified Connection Manager: connection_manager_4 Hostname: my_host_4
REPLSET my_replicate_set_1
SLA Connections Service/Protocol Rule
sla_1 160 19810/onsoctcp DBSERVERS=ANY

Unified Connection Manager: connection_manager_5 Hostname: my_host_5
REPLSET my_replicate_set_1
SLA Connections Service/Protocol Rule

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 510 -

sla_2 240 19820/onsoctcp DBSERVERS=ANY
该命令显示了两台连接到复制服务器的连接管理器。connection_manager_4 和
connection_manager_5 分别安装在不同的主机,并且它们一起管理复制服务器。
示例 4:Grid 的输出
在以下示例中,onstat -g cmsm 在 my_grid_1 的一个节点上运行。
Unified Connection Manager: connection_manager_6 Hostname: my_host_6
GRID my_grid_1
SLA Connections Service/Protocol Rule
sla_1 456 19830/onsoctcp DBSERVERS=(group_name_1,group_name_2) POLICY=FAILURE

Unified Connection Manager: connection_manager_7 Hostname: my_host_7
GRID my_grid_1
SLA Connections Service/Protocol Rule
sla_2 785 19840/onsoctcp DBSERVERS=(group_name_1,group_name_2)POLICY=FAILURE
该命令显示了两台连接到 grid 的连接管理器。它还显示了连接到该节点的两台连接管理
器。connection_manager_6 和 connection_manager_7 分别安装在不同的主机,并且它们一
起管理 grid 。
示例 5 :服务器集的输出
在以下示例中,onstat -g cmsm 在一个独立服务器的服务器集上运行。
Unified Connection Manager: connection_manager_8 Hostname: my_host_8
SERVERSET server_1,server_2
SLA Connections Service/Protocol Rule
sla_1 63 19810/onsoctcp DBSERVERS=(server_1,server_2) POLICY=ROUNDROBIN

Unified Connection Manager: connection_manager_9 Hostname: my_host_9
SERVERSET server_1,server_2
SLA Connections Service/Protocol Rule
sla_2 63 19810/onsoctcp DBSERVERS=(server_1,server_2) POLICY=ROUNDROBIN
该命令显示了两台连接到此服务器集的连接管理器。connection_manager_8 和
connection_manager_9 分别安装在不同的主机,并且它们一起管理 该服务器集。。
输出描述
onstat -g cmsm 命令的输出包含每个连接管理器的章节。
每一节显示连接管理器实例的名称
和主机名,之后包含有关连接管理器连接的每个连接单元的子章节。
Unified Connection Manager
连接管理器实例的名称
Hostname

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 511 -

连接管理器的主机的名称
SLA
服务等级协议的名称,在连接管理器的配置文件中设置。
Connections
自从连接管理器启动后,每个 SLA 处理的连接数
Service/Protocol
与 SLA 相关联的端口号或服务名,随后的是连接协议类型
Rule
SLA 定义
Failover Arbitrator:
指定连接管理器是否是主故障转移仲裁者(如果主服务器是活动的,并且故障转移启用)
仅用于显示 CLUSTER 连接单元
ORDER
指定集群的故障切换顺序。仅用于显示 CLUSTER 连接单元
PRIORITY
指定连接管理器和集群主服务器的连接优先级。仅用于显示 CLUSTER 连接单元
onstat -g con 命令:打印条件和线程信息
使用 onstat -g con 命令显示有关条件及正在等待这些条件的线程的信息。
语法:

示例输出
图: onstat -g con 命令输出
Conditions with waiters:
cid addr name waiter waittime
271 c63d930 netnorm 1511 6550

输出描述
cid
条件标识符
addr
条件控制 block 地址
name
线程正在等待的条件的名称
waiter
正在等待条件的线程的 ID

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 512 -

waittime
以秒表示的线程已经等待此条件的时间
onstat -g cpu: 打印运行时间统计信息
使用 onstat -g cpu 命令显示正在服务器上运行的每个线程的运行时间的统计信息。
语法:

示例输出
图: onstat -g cpu 命令输出

输出描述
tid
线程 ID
name
线程名称
vp
正在运行线程的虚拟处理器的 ID
Last Run
线程上次运行的时间戳
CPU Time
直到现在线程运行的时间
#scheds

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 513 -

线程被安排运行的次数
status
线程的状态。可能值如下:
l cond wait
l IO Idle
l join wait
l mutex wait
l ready
l sleeping
l terminated
l running
l yield
onstat -g dbc 命令:打印 dbScheduler 和 dbWorker 线程的统计信息
使用 onstat -g dbc 命令显示有关正在运行的调度任务
(一些由 dbWorker 处理或计划运行,
一些由 dbScheduler 线程处理。)的统计信息。
语法:

示例输出
图: onstat -g dbc 命令输出
Worker Thread(0) 46fa6f10
=====================================
Task: 47430c18
Task Name: mon_config_startup
Task ID: 3
Task Type: STARTUP SENSOR
Last Error
Number -310
Message Table (gbasedbt.mon_onconfig) already exists in database.
Time 09/11/2007 11:41
Task Name mon_config_startup

Task Execution: onconfig_save_diffs
WORKER PROFILE
Total Jobs Executed 10
Sensors Executed 8
Tasks Executed 2
Purge Requests 8

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 514 -

Rows Purged 0

Worker Thread(1) 46fa6f80
=====================================
Task: 4729fc18
Task Name: mon_sysenv
Task ID: 4
Task Type: STARTUP SENSOR
Task Execution: insert into mon_sysenv select 1, env_name, env_value FROM
sysmaster:sysenv
WORKER PROFILE
Total Jobs Executed 3
Sensors Executed 2
Tasks Executed 1
Purge Requests 2
Rows Purged 0

Scheduler Thread 46fa6f80
=====================================
Run Queue
Empty
Run Queue Size 0
Next Task 7
Next Task Waittime 57

输出描述
Worker Thread
共享内存中工作线程的地址
Task
最后执行的任务的名称
Task ID
来自 sysadmin:ph_task 表中的 tk_id 列有关该任务的任务 ID
Task Type
任务的类型
Last Error
dbWorker 线程遇到的最后的错误的错误号、错误消息、时间(以秒为单位)和任务名称。
它可能来自上一次执行的任务也可能来自几天前执行的任务。
Task Execution

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 515 -

SQL 语句或 SPL 程序或作为部分任务已执行的例程
WORKER PROFILE
dbWorker 线程概要文件数据显示总共执行的工作量、已执行的传感器的数、已执行的任务
数和从通过此 dbWorker 线程执行的所有传感器的结果表中已清除的行数。
Scheduler Thread
共享内存中调度线程的地址
Run Queue
下一个要调度任务的任务 ID 。如果没有计划任务,那么该值为 Empty
Run Queue Size
正在等待通过 dbWorker 执行的任务的数量
Next Task
安排的下一个要执行的任务的任务 ID
Next Task Waittime
安排的 Next Task 要执行前的秒数
onstat -g defragment 命令:打印磁盘碎片整理的分区 extent
使用 onstat -g defragment 命令显示有关磁盘碎片分区 extent 的活动请求的信息。
语法:

示例输出
图: onstat -g defragment 命令输出

注: 该命令显示有关活动的磁盘碎片请求的信息。如果没有活动的磁盘碎片请求,那么仅
返回列标题。
输出描述
id
磁盘碎片请求的 ID
table name
正在进行碎片整理的表的全名
tid
线程 ID
dbsnum
正在进行碎片整理的 dbspace 的数量
partnum
正在进行碎片整理的分区的数量

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 516 -

status
l SEARCHING_FOR_EXTENT
l MERGING_EXTENTS
l DEFRAG_COMPLETED
l DEFRAG_FAILED
substatus
详细的状态号,如果有的话
errnum
最后一次碎片整理请求返回的错误号
onstat -g dic 命令:打印表信息
使用 onstat -g dic 命令显示共享内存字典中高速缓存的每张表的一行信息。如果指定了表
名,那么打印表的内部 SQL 信息。
语法:

示例输出
图: onstat -g dic 命令输出
Dictionary Cache: Number of lists: 31, Maximum list size: 10
list# size refcnt dirty? heapptr table name
--------------------------------------------------------
1 3 1 no 14b5d890 wbe@oninit_shm:gbasedbt.t0010url
1 no 14cbb820 wbe@oninit_shm:gbasedbt.t9051themeval
0 no 14b63c20 wbe@oninit_shm:gbasedbt.t0060hits
2 2 0 no 14b97420 wbe@oninit_shm:gbasedbt.t0120import
1 no 14b6c820 wbe@oninit_shm:gbasedbt.t9110domain
3 3 0 no 14bce020 wbe@oninit_shm:gbasedbt.t0150url
0 no 14d3d820 contact@oninit_shm:gbasedbt.wbtags
0 no 14c87420 wbe@oninit_shm:gbasedbt.wbtags
4 1 0 no 14b7a420 drug@oninit_shm:abcdef.product ..
Total number of dictionary entries: 36

输出描述
list#
数据字典哈希链 ID
size
在此哈希列中的条目的数量
refcnt

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 517 -

当前引用高速缓存条目之一的 SQL 语句的数量
dirty?
自上次写入磁盘以来条目是否已修改
heapptr
用于存储此表的堆的地址
table name
在高速缓存中的表的名称
有关 onstat -g dic 命令的更多信息,请参阅 GBase 8s 性能指南。
onstat -g dis 命令:打印数据库服务器信息
使用 onstat -g dis 命令显示数据库服务器及其状态列表和有关每个数据服务器,包括
GBS_HOME 目录位置、
sqlhosts 文件以及 ONCONFIG 文件的信息。
可以在数据库服务器
处于任何方式(包括脱机) 时使用该命令。
语法:

示例输出
图: onstat -g dis 命令输出
There are 2 servers found
Server : ol_tuxedo
Server Number : 53
Server Type : IDS
Server Status : Up
Server Version: GBase Database Server Version 12.10.FC4G1TL
Shared Memory : 0xa000000
GBS_HOME : /opt/gbs_server/home
ONCONFIG : #
SQLHOSTS : /opt/gbs_server/data/conf/sqlhosts
Host : avocet

Server : ol_9next
Server Number : 0
Server Type : IDS
Server Status : Down
Server Version:
Shared Memory : 0
GBS_HOME : /local1/engines/gbs_server/home
ONCONFIG :

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 518 -

SQLHOSTS :
Host :

输出描述
Server
服务器名称
Server Number
服务器编号
Server Type
服务器类型
Server Status
Up 表示服务器联机,Down 表示服务器脱机
Server Version
服务器版本
Shared Memory
共享内存地址的位置
GBS_HOME
在 UNIX™ 中是 $GBS_HOME 目录的位置
SQLHOSTS
sqlhosts 文件的位置
Host
服务器的主机名
onstat -g dll 命令:打印动态链接库文件列表
使用 onstat -g dll 命令显示已加载的动态链接库(DLL)文件列表。
语法:

示例输出
该输出显示仅一次每个进程组库文件的名称。该标记标示当服务器启动后,库是否已加载。

图: onstat -g dll 命令输出
addr slot vp baseaddr flags filename
0x4af55310 15 1 0x2a985e3000 PM /finance/jeffzhang/mylib.udr
0x4b6f2310 2 0x2a985e3000
0x4b71b310 3 0x2a985e3000
0x4c09f310 16 1 0x2a985e3000 M /deptxyz/udrs/geodetic.bld
0x4c0c0310 2 0x2a985e3000
0x4c0f1310 3 0x2a985e3000

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 519 -

0x4c112310 17 1 0x7a138e9000 /home/gbasedbt/extend/blade.so
0x4c133310 2 0x3a421e1000
0x4c133310 3 0x3a421e1000

输出描述
addr
DLL 文件的地址
slot
在库表中的 Slot 编号条目
vp
虚拟处理器的 ID
baseaddr
共享库的基地址
flags
l M 标示呼叫 UDR 的线程可从从一个 CPU 虚拟处理器转移到另一个 CPU 虚拟处理

l P 标示当数据库服务器启动后,该共享库已加载
filename
DLL 文件的名称
onstat -g dmp 命令:打印原内存
使用 onstat -g dmp 命令显示有关在若干个给定的字节的给定的地址处原内存信息。
语法:

每个地址和长度必须在 onstat -g seg 输出中显示的分配内存的范围之内。指定的地址格式
可以是十进制或十六进制。十六进制地址必须以 0x 开头。可以指定该地址为十进制,但
是这样做需要在使用它作为命令行参数之前,将 onstat -g seg 显示的内存转换为十进制。
示例输出
图: onstat -g dmp 命令输出
%onstat -g dmp 0x700000011a19d48 100
address bytes in mem
0700000011a19d48: 07000000 118e0fa8 07000000 11942b40 ........ ......+@
0700000011a19d58: 07000000 10137120 00000000 00000000 ......q ........
0700000011a19d68: 00000000 00000000 00000000 00000000 ........ ........
0700000011a19d78: 07000000 11a19d48 07000000 11a19d48 .......H .......H
0700000011a19d88: 00000000 00000000 00000000 00000000 ........ ........
0700000011a19d98 *

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 520 -

0700000011a19da8: 00000000 ....

输出描述
address
原内存的内存地址
bytes in mem
内存内容的十六进制和 ASCII 说明
该命令的输出分为三列:
内存地址、
以字节表示的内存十六进制值和内存的 ASCII 字节说
明。内存中的字节(中间)章节显示了内存位于命令行中指定地址的前 16 个字节。第三
列显示了十六进制数据的 ASCII 说明。所有没有等价的 ASCII 字符的十六进制值都会显
示成间隔符。显示 ASCII 值是为了使纯文本搜寻更简便。
在以上显示的示例输出中,第五行数据显示零并且第六行包含星号。星号标识前一行重复
的未知编号,它表示在第四行之后没有更多的数据。
onstat -g dri 命令:打印高可用性数据复制信息
使用 onstat -g dri 命令(单独使用或和 ckpt 或 que 选项一起使用),来打印有关当前服
务器中的高可用性数据复制的统计信息。
可以使用 onstat -g dri 命令打印有关 HDR 服务器状态和 HRD 相关配置参数信息。
语法:

onstat -g dri 的示例输出和输出描述
图: onstat -g dri 命令输出
Data Replication at 0x4d676028:
Type State Paired
server Last
DR
CKPT
(id/pg) Supports
Proxy
Writes
primary on my_server 4 / 5 NA

DRINTERVAL 5
DRTIMEOUT 30
DRAUTO 3
DRLOSTFOUND /etc/dr.lostfound
DRIDXAUTO 0
ENCRYPT_HDR 0
Backlog 0
Last Send 2013/12/11 16:39:48
Last Receive 2013/12/11 16:39:48
Last Ping 2013/12/11 16:39:44
Last log page applied(log id,page): 4,6

Type

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 521 -

服务器的当前类型:主服务器、辅助服务器或标准服务器
State
on 或 off
Paired server
与该服务器配对的主服务器或辅助服务器的名称
Last DR CKPT
最后 checkpoint ID 和页
Supports Proxy Writes
显示该服务器是否配置允许辅助服务器更新。Y = 支持辅助服务器更新,N = 不支持辅助
服务器更新
DRINTERVAL
onconfig 文件中配置参数的值
DRTIMEOUT
onconfig 文件中配置参数的值
DRAUTO
onconfig 文件中配置参数的值
DRLOSTFOUND
onconfig 文件中配置参数的值
DRIDXAUTO
onconfig 文件中配置参数的值
ENCRYPT_HDR
onconfig 文件中配置参数的值
Backlog
在 HDR 数据复制缓冲区中还未发送到 HRD 辅助服务器中的日志页数
Last Send
最后一个消息发送至对等节点的时间
Last Receive
从对等节点接收的最后一个消息的时间
Last Ping
上次 ping 的时间
Last log page applied(log id,page)
上次应用日志的日志 ID 和页
onstat -g dri ckpt 的示例输出和输出描述
使用 onstat -g dri ckpt 命令打印在 HDR 服务器中未阻塞的 checkpoint 的信息。
图: onstat -g dri ckpt 命令输出

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 522 -


Save State
B (buffering) 服务器正在向暂存区添加日志
D (draining) 服务器正在从暂存区移除日志
N (normal) 服务器正常工作,这意味着没有保存日志
Pages Saved
显示保存在暂存区还没应用的日志的页数
Save Area
显示暂存日志文件的位置
Received log id, page
显示从主服务器接收的最后一个日志的 ID 和页
Processed log id, page
显示排队等待恢复管道的最后一个日志的 ID 和页
Saved log id, page
显示存储在暂存区(如果暂存区状态是 B 或 D)的最后一个日志的 ID 和页
Drain log id, page
显示最后一个从暂存区移除的日志的 ID 和页
Pending checkpoints
显示暂存的还未应用的 checkpoint 数量
Pending ckpt log id, page
显示任意暂押的 checkpoint 记录的位置
onstat -g dri que 的示例输出和输出描述
使用 onstat -g dri que 命令打印几乎与 HDR 复制同步相关的信息。
图: onstat -g dri que 命令输出

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 523 -


Pending message to send
在 drprsend 线程的复制缓冲区排队的未处理的数据的数量
ACK QUEUE
日志唯一值、页编号和最近大多数 GBase_8s paged 的日志的 0xfff 值
thread
线程控制 block (TCB)的指针,括号中的数字为此线程的 ID,和由该线程执行提交的日
志序列号(LSN)
Applied QUEUE
被 HDR 辅助服务器接收的正在等待认知的提交的 LSN
onstat -g dsc 命令:打印分布式高速缓存信息
使用 onstat -g dsc 命令显示有关分布式高速缓存的信息。
语法

示例输出
图: onstat -g dsc 命令输出

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 524 -


输出描述
Number of lists
在分布式高速缓存中列表的数量
DS_POOLSIZE
每次可以高速缓存的条目的数量
list
分布式高速缓存哈希链 ID
id
哈希条目编号
ref
引用高速缓存条目的语句的数量
drop
此条目添加到高速缓存以来是否被删除
hits
高速缓存条目的访问次数
heap_ptr
用于存储此条目的堆地址

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 525 -

distribution name
在高速缓存中分布式的名称
Total number of distribution entries
分布式高速缓存中的条目的数量
Number of entries in use
正在被使用的条目的数量
onstat -g dsk 命令:打印当前正在运行的压缩操作的进度
可以使用 onstat -g dsk 命令打印当前正在运行的压缩操作的进度,例如:压缩、重新打包
和收缩。
语法:

示例输出
图: onstat -g dsk 压缩操作命令的输出

图: onstat -g dsk 重新打包操作命令的输出

输出描述
partnum
表或分片的分区号
OP
压缩操作,例如:压缩、重新打包或收缩
Pass
对于重新包装操作,1 标示第一遍读取行,2 标示第二遍读取
Processed Rows
目前为止该指定操作已处理的行数
Blobs
操作的简单大对象数
Remaining Rows
要处理的剩余行数。对于重新打包操作,是当前已过的剩余行数。
Duration Time(s)
自从该操作开始以来的持续的时间
Remaining Time(s)

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 526 -

该操作大概剩余的时间量。对于重新包装操作,是当前已过的剩余时间。
onstat -g env 命令:打印环境变量值
可以使用 onstat -g env 命令显示数据库服务器当前使用的环境变量的值的信息。
语法:

可以指定以下调用之一。
onstat -g env
显示数据库服务器启动时变量的设置
不显示还未显式设置的变量
onstat -g env all
显示由所有会话使用的设置
此显示与 onstat -g env 和 onstat -g envsessionid
的输出相同(对所有当前会话重复)
onstat -g env variable
显示指定变量的缺省值
此 variable 参数使得不必将输出以管道方式运送到
grep (或某些其他实用程序)中以便在许多可能设置
的变量中找到一个变量
onstat -g env sessionid
显示特定会话使用的设置。该显示包含以下值:
l 会话环境中的设置
l 由数据库服务器指定,如 onstat
-g
env 所显

onstat -g env sessionid
variable
显示指定会话使用的指定变量的值
sessionid 和 variable 参数使得不必将输出以管道
方式运送到 grep
(或一些其他实用程序)
中以便在许
多可能设置的变量中找到一个变量


GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 527 -

onstat -g env 命令显示变量的当前设置和每次在环境中设置此变量时的值的完整列表。例
如:如果 PDQPRIORITY 在 .gbasedbt.rc 文件中设置为 10 ,而在 shell 环境中设置为
55 ,那么 onstat -g env 会显示两个值。
但是,如果使用 onmode -q pdqpriority sessionid 命令更改了 PDQPRIORITY ,那么 onstat
-g env 命令不会显示该会话的新值。
onstat -g env 命令仅显示环境中设置的变量的值,
它不
显示会话正在运行时修改的值。
在以下任何情况下,您可能想要显示环境变量的值:
l 数据库服务器示例已运行了几个月,但您无法记起环境变量的设置(例如服务器语
言环境设置 SERVER_LOCALE)。
l 您想要显示变量值的完整列表,以标识变量何时在多处进行了设置。
l 在这期间磁盘上的环境文件可能已更改或已丢失。
l 支持工程师想要知道特定环境变量的设置。
示例输出
下图显示了 onstat -g env 命令的输出。
图: onstat -g env 命令输出
Variable Value [values-list]
DBDELIMITER |
DBPATH .
DBPRINT lp -s
DBTEMP /tmp
GBASEDBTSERVER instance
GBASEDBTSQLHOSTS /opt/gbs_server/data/conf/sqlhosts
GBASEDBTTERM terminfo
GBS_DATA /opt/gbs_server/data
GBS_HOME /opt/gbs_server/home
[/opt/gbs_server/home]
[/usr/gbasedbt]
IGNORE_UNDERFLOW 1
LANG en_US.UTF-8
LC_COLLATE en_US.UTF-8
LC_CTYPE en_US.UTF-8
LC_MONETARY en_US.UTF-8
LC_NUMERIC en_US.UTF-8
LC_TIME en_US.UTF-8
LKNOTIFY yes

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 528 -

LOCKDOWN no
NODEFDAC no
ONCONFIG onconfig
PATH
/opt/gbs_server/home/bin:/bin:/usr/lib64/qt-3.3/bin:/usr/lo
cal/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/hom
e/gbasedbt/bin
SERVER_LOCALE en_US.819
SHELL /bin/bash
TERM xterm
[xterm]
[dumb]
TERMCAP /etc/termcap
onstat -g ffr 命令:打印空闲分片
可以使用 onstat -g ffr 命令显示有关特定会话或共享内存池的可用分片的信息。
该命令需要附加的参数来指定要显示内存池信息的池的名称或会话 ID 。每个会话都以其
名称为会话 ID 分配到内存池中。可以使用 onstat -g mem 命令标示池的名称,使用
onstat -g ses 命令标示会话 ID 。
语法:

示例输出
图: onstat -g ffr aio 命令输出

输出描述
addr (hexadecimal)
池分片的内存地址
size (decimal)
池分片大小,以字节表示
idx (decimal)
供内部使用。可用列表指针数组中的索引

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 529 -

onstat -g glo 命令:打印全局多线程信息
使用 onstat -g glo 命令显示有关多线程的全局信息、每个正在运行的虚拟处理器的信息以
及每个虚拟处理器类的计算统计信息。该信息包括有关虚拟处理器 CPU 的使用信息、总
会话数和其他多线程全局计数。
语法:

示例输出
图: onstat -g glo 命令输出
MT global info:
sessions threads vps lngspins time
0 23 14 0 142

sched calls thread switches yield 0 yield n yield forever
total: 85240 70451 16956 868
37319
per sec: 0 0 0 0 0

Virtual processor summary:
class vps usercpu syscpu total
cpu 1 92.12 0.59 92.71
aio 1 0.05 0.08 0.13
lio 1 0.00 0.00 0.00
pio 1 0.00 0.00 0.00
adm 1 0.00 0.01 0.01
soc 4 0.01 0.01 0.02
msc 1 0.00 0.00 0.00
jvp 1 0.00 0.00 0.00
fifo 1 0.00 0.00 0.00
nyevp 1 0.00 0.00 0.00
yevp 1 0.00 0.00 0.00
total 14 92.18 0.69 92.87

Individual virtual processors:

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 530 -

vp pid class usercpu syscpu total Thread
Eff
1 26328 cpu 92.12 0.59 92.71 122.65
75%
2 26330 adm 0.00 0.01 0.01 0.00
0%
3 26331 lio 0.00 0.00 0.00 0.00
0%
4 26332 pio 0.00 0.00 0.00 0.00
0%
5 26333 aio 0.05 0.08 0.13 0.28
45%
6 26334 msc 0.00 0.00 0.00 0.19
0%
7 26335 fifo 0.00 0.00 0.00 0.00
0%
8 26336 nyevp 0.00 0.00 0.00 0.00
0%
9 26337 yevp 0.00 0.00 0.00 0.00
0%
10 26338 jvp 0.00 0.00 0.00 0.00
0%
11 26339 soc 0.00 0.00 0.00 NA
NA
12 26340 soc 0.00 0.00 0.00 NA
NA
13 26341 soc 0.01 0.01 0.02 NA
NA
14 26342 soc 0.00 0.00 0.00 NA
NA
tot 92.18 0.69 92.87
输出描述
下表解释了示例输出中全局信息章节中的每个列。
表 1. 虚拟处理器摘要列的描述

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 531 -

列名
描述
sessions
会话数
threads
线程总数
vps
虚拟处理器的总数
lngspins
线程不得不 spin 超过 10,000 次以获得资源上的 latch 的次数
time
生成统计信息的时间。服务器启动时开始统计或通过运行 onstat -z 命
令重置统计信息。
sched calls
排定呼叫的总数
thread
switches
从一个线程到另一个线程切换的总次数
yield
线程收益率的统计信息
(在该线程无法继续它的任务直到发生别的条件时
发生)

下表解释了示例输出中 Virtual Processor Summary 章节中的每个列。
表 2. Virtual Processor Summary 列的描述
列名
描述
class
虚拟处理器的类型
vps
这个虚拟处理器类的实例的数量
usercpu 这个虚拟处理器类在 CPU 上运行所花费的总用户时间(秒)
syscpu 这个虚拟处理器类在 CPU 上运行所花费的总系统时间(秒)
total
虚拟处理器类的总 CPU 时间,它是用户时间加上系统时间的总和

下表解释了示例输出中 Individual Virtual Processor 章节中的每个列。
表 3. Individual Virtual Processor 的列描述
列名
描述
vp
虚拟处理器编号。在 Windows™ 上,是线程 ID 值。

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 532 -

列名
描述
pid
oninit 进程的进程 ID
class
虚拟处理器类
usercpu 虚拟处理器类在 CPU 上运行的总用户时间(秒)
syscpu 虚拟处理器类在 CPU 上运行的总系统时间(秒)
total
虚拟处理器类的总 CPU 时间,它是用户时间加上系统时间的总和
Thread 线程在虚拟处理器上运行的总时间
Eff
效率。总 CPU 时间占线程在虚拟处理器上运行总时间的比率

onstat -g his 命令:打印 SQL 跟踪信息
可以使用 onstat -g his 命令显示 sysmaster 数据库中 syssqltrace 表(包括
syssqltrace 、
syssqltrace_info 、
syssqltrace_hvar 和 syssqltrace_itr)
收集的 SQL
跟踪信息。
SQLTRACE 配置参数的 level 设置会影响由 syssqltrace 表存储和显示的 SQL 跟踪信
息,并影响 onstat
-g
his 显示的信息。syssqltrace 表每行描述一条以前执行的 SQL 语
句。缺省情况下,只有 DBSA 可以查看来自 onstat -g his 命令的 syssqltrace 信息。
然而,当将 UNSECURE_ONSTAT 配置参数设置为 1 时,所有的用户都可以查看该信息。
语法:

示例输出
输出的内容依赖于跟踪的设置。
输出中的 Statement history 部分提供有关正在跟踪的当前设置的信息。

下表是该输出的描述:

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 533 -

元素
描述
Trace
Level
已跟踪的信息量。可用值为 LOW 、MED 、HIGH 和 OFF
Trace Mode 执行跟踪的类型。Global 参考系统上的所用用户。User 只参考由 SQL 管理
API 函数启用的用户。
Number of
traces
跟踪的 SQL 语句的数量。该值在 onconfig 文件中进行设置,除非 SQL 管
理 API 函数动态更改了 ntraces 参数。它的取值范围是 500 到
2147483647 。如果有 100,000 个跟踪缓冲区,每秒组织运行 1000 条 SQL
语句并要跟踪所有的语句,那么这些缓冲区在重写之前将持续 100 秒。
Current
Stmt ID
当前 SQL 语句的 ID 。每条被跟踪的语句都获得一个唯一 ID 。
Trace
Buffer
size
每个跟踪缓冲区将获取的数据量
(以字节表示)

如果将此大小设置为 2
KB ,
但是有一条 12 KB 的 SQL 语句,那么该语句将会截断至少 10 KB 。更多的
数据可能会被截断,它依赖于要跟踪的其它的数据。
Duration
of buffer
以秒表示跟踪的数据在当前跟踪缓冲区跨度的时间量。它不是 sqltrace 功
能已运行的时间。在上述示例中,Duration of buffer 是 293 秒,它表示
跟踪的第一条和最后一条 SQL 语句之间的时间。
Trace
Flags
当前设置的 SQL 跟踪标志
Control
Block
该 SQL 跟踪控制 block 的内存地址

每次语句运行后,以下的信息重复显示一次。在该示例中,调用了两个变量。

下表是该输出的描述:

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 534 -

元素
描述
Database
数据库名或该数据库的 systables 条目部分的编号
Statement
text
该 SQL 语句的文本。如果该语句时存储过程,那么该语句文本将显示该过
程的堆跟踪。如果声明和数字统计大于跟踪缓冲区,那么该语句文本可能会
被截断。


下表是该输出的描述:
元素
描述
ID
SQL 迭代器 ID
Left
迭代器左侧输入的 ID
Right
迭代器右侧输入的 ID
Est Cost 本次迭代的估计成本
Est Rows 本次迭代的估计行数
Num Rows 本次迭代的实际行数
Partnum 表编号或索引分区编号
Type
操作类型

如果 SQL 语句包含一个或多个变量,并且您正在跟踪主机变量,那么输出中会显示 Host
Variables 小节。

下表是该输出的描述:

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 535 -

元素
描述
Column 1 该语句中变量的位置
Column 2 该变量的数据类型
Column 3 该变量值


下表是该输出的描述:
元素
描述
Sess_id
会话 ID
User_id
此操作系统用户 ID
Stmt
Type
SQL 语句类型
Finish
Time
当天该 SQL 语句结束的时间
Run Time 虚拟处理器或线程处理该语句所花费的总时间。例如:如果 Finish Time 是
1:15:00 ,Run
Time 是 9 分钟并且启动时间不一定是 1:06:00 ,那么可能在
并行语句部分调用了多个虚拟处理器或线程。
TX Stamp 该事务中记录 BEGIN WORK 语句的时间
PDQ
SQL 语句 PDQ 级别

输出中 Statement Statistics 部分提供有关该语句的特定信息。

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 536 -


元素
描述
Page Read
该 SQL 语句已从磁盘读取的页数
Buffer Read
该 SQL 语句从缓冲池读取而不是从磁盘读取页的次数
Read % Cache 应从缓冲池读取页的次数的百分比
Buffer IDX
Read
尚未明确
Page Write
写入磁盘的页数
Buffer Write 修改并发送回缓冲池的页数
Write % Cache 页面写入缓冲池而不是写入磁盘的次数的百分比
Lock
Requests
该语句所需的锁的总数
Lock Waits
该 SQL 语句等待锁的次数
LK Wait Time
(S)
该语句等待锁的时间(以秒为单位)
Log Space
逻辑日志中该 SQL 语句已使用的存储空间量
Num Sorts
用于执行语句的排序总数
Disk Sorts
对于该 SQL 语句,对磁盘执行的排序的次数
Memory Sorts 对于该 SQL 语句,对内存执行的排序的次数

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 537 -

元素
描述
Total
Executions
该语句已执行的总次数,或者该游标重用的次数
Total Time
(S)
执行该语句的总时间(以秒表示)
Avg Time (S) 执行该语句的平均时间(以秒表示)
Max Time (S) 运行 SQL 语句的总时间
(以秒为单位)

不包括应用程序使用的任何时间。
如果您准备一个查询然后查询 5 次,
该查询每次将一个跟踪添加到跟踪缓
冲区中。Max Time 是任意执行所花的最长时间
Avg IO Wait
语句等待 I/O 的时间量,不包括任何异步 I/O
I/O Wait Time
(S)
语句等待 I/O 的时间量,不包括任何异步 I/O(以秒为单位)
Avg Rows Per
Sec
该语句每秒产生的平均行数
Estimated
Cost
与 SQL 语句关联的查询优化程序的代价
Estimated
Rows
返回的估计行数,由语句的优化程序估计
Actual Rows
该语句返回的行数
SQL Error
SQL 错误编号
ISAM Error
RSAM 或 ISAM 错误编号
Isolation
Level
该语句运行时使用的隔离级别
SQL Memory
该 SQL 语句需要的字节数

有关 syssqltrace 系统监视接口表的完整结构,请参阅 syssqltrace。
有关 SQLTRACE 配置参数的详细设置信息,请参阅 SQLTRACE 配置参数。
onstat -g ioa 命令:打印合并的 onstat -g 信息

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 538 -

可以使用 onstat
-g
ioa 命令显示来自 onstat
-g
iob 、onstat
-g
iof 、onstat
-g
ioq
和 onstat -g iov 命令的组合信息。
语法

示例输出
AIO global info:
9 aio classes
9 open files
64 max global files

AIO I/O queues:
q name/id len maxlen totalops dskread dskwrite dskcopy
fifo 0 0 0 0 0 0 0
drda_dbg 0 0 0 0 0 0 0
sqli_dbg 0 0 0 0 0 0 0
adt 0 0 0 0 0 0 0
msc 0 0 1 231 0 0 0
aio 0 0 5 13069 10895 0 0
pio 0 0 1 1580 0 1580 0
lio 0 0 1 37900 0 37900 0
gfd 3 0 87 42115 15806 26309 0
gfd 4 0 4 5 1 4 0
gfd 5 0 12 35 22 13 0
gfd 6 0 11 33 21 12 0
gfd 7 0 1 4 3 1 0
gfd 8 0 1 4 3 1 0

AIO I/O vps:
class/vp/id s io/s totalops dskread dskwrite dskcopy wakeups io/wup
errors tempops
fifo 7 0 i 0.0 0 0 0 0 1 0.0
0 0

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 539 -

msc 6 0 i 0.0 231 0 0 0 221 1.0
0 231
aio 5 0 i 0.0 39285 26358 10793 0 37531 1.0
0 5
aio 9 1 i 0.0 5770 3795 1944 0 5926 1.0
0 0
aio 10 2 i 0.0 2308 717 1585 0 1953 1.2
0 0
aio 11 3 i 0.0 1463 166 1295 0 1166 1.3
0 0
aio 12 4 i 0.0 1219 46 1172 0 943 1.3
0 0
aio 13 5 i 0.0 1041 34 1007 0 805 1.3
0 0
aio 15 6 i 0.0 425 2 423 0 438 1.0
0 0
aio 16 7 i 0.0 342 5 337 0 395 0.9
0 0
pio 4 0 i 0.0 1580 0 1580 0 1581 1.0
0 1580
lio 3 0 i 0.0 37900 0 37900 0 29940 1.3
0 37900

AIO global files:
gfd pathname bytes read page reads bytes write page
writes io/s
3 ./rootdbs 85456896 41727 207394816
101267 572.9
op type count avg. time
seeks 0 N/A
reads 13975 0.0015
writes 51815 0.0018
kaio_reads 0 N/A
kaio_writes 0 N/A

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 540 -


4 tempsbs.chunk 2048 1 8192 4