onlog 实用程序

onlog 实用程序显示逻辑日志文件(无论在磁盘上或备份上)的内容。

onlog: 显示逻辑日志内容

当您想要跟踪特定事务或查看对特定 tblspace 进行了什么更改的调试情况中,onlog 输出是有用的。(有关解释逻辑日志文件内容的信息,请参阅 解释逻辑日志记录 。)

任何用户都可以运行 -l 选项除外的所有 onlog 选项。只有用户 gbasedbt(在 UNIX™ 上)或 GBasedbt-Admin 群组的成员(在 Windows™ 上)可以运行 -l 选项。

如果当您执行 onlog 时数据库服务器处于脱机模式,那么只读取磁盘上的文件。如果数据库服务器处于静态模式或联机模式,那么 onlog 还读取存储在共享内存中逻辑日志缓冲区的逻辑日志记录(在读取磁盘上的所有记录之后)。

当数据库服务器在联机模式下从磁盘中读取具有状态 U 的逻辑日志文件时,数据库服务器拒绝对逻辑日志文件的所有访问,有效地停止所有会话的数据库活动。(有关更多信息,请参阅onstat -l 命令:打印物理和逻辑日志信息。)出于这个原因,建议您等到备份了文件之后再从备份中读取逻辑日志文件的内容。

onlog 实用程序没有功能等同于 SQL 管理 API 命令 字符串。

onlog 语法

元素 用途 关键注意事项
-q 不显示缺省情况下每 18 个记录出现一次的初始头和单行头
-V 显示软件版本号及序列号 请参阅 获取实用程序的版本信息
-version 显示构件版本、主机、操作系统、编号、日期及 GLS 版本 请参阅 获取实用程序的版本信息
onlog 索引要显示的记录时,您指示它读取逻辑日志的以下部分:
  • 存储在磁盘上的记录
  • 存储在备份介质上的记录
  • 所指定逻辑日志文件中的记录

缺省情况下,onlog 显示逻辑日志记录头,它描述事务号和记录类型。记录类型标识所执行操作的类型。

除头之外,您可以使用读取过滤器指示 onlog 显示以下信息:
  • 逻辑日志记录头和数据(包含存储在 dbspace 或 tblspace 中的简单大对象的副本)
  • Blobspace 中 blobpages 的副本

    它们是只从逻辑日志备份复制的,它们不可从磁盘上得到。

您可以显示每个逻辑日志记录头或可以基于以下条件指定输出:
  • 与特定表相关联的记录
  • 特定用户启动的记录
  • 与特定事务相关联的记录

如果 onlog 在日志文件中检测到错误(例如无法识别日志类型),那么它以十六进制格式显示整个日志页并终止。

日志记录读取过滤器

onlog 实用程序使用存储在 root dbspace 保留页中的路径名定位逻辑日志文件。如果使用 ON-Bar 备份逻辑日志,那么 onlog 请求存储管理器从备份介质中检索想要的逻辑日志记录。

语法
元素 用途 关键注意事项
-b 显示与 blobspace blobpage 相关联的逻辑日志记录 数据库服务器将这些记录作为 blobspace 日志记录的一部分存储在逻辑日志备份介质上
-d device 给出所需逻辑日志备份安装到的存储设备的路径名 如果使用 ontape ,那么所指定的设备必须与指定给配置参数 LTAPEDEV 的设备的路径名相同。如果未使用 -d 选项,那么 onlog 读取存储在磁盘上的逻辑日志文件(以具有最低 logid 的逻辑日志文件开始)。

如果您使用 ON-Bar 来备份逻辑日志,请使用 onbar -P 命令来查看逻辑日志文件的内容。请参阅 GBase 8s 备份与恢复指南

有关路径名语法,请参阅操作系统文档

-n starting_uniqid-ending_uniqid 指示 onlog 读取包含在您指定的日志文件中从 starting uniqid ending uniqid 的所有的逻辑日志记录

starting_uniqidending_uniqid 都是逻辑日志的唯一 ID 。要确定特定逻辑日志文件的 uniqid ,请使用 onstat -l 命令。

如果您没有使用 -n 选项,那么 onlog 将读取所有可用的逻辑日志文件(在磁盘上或磁带上)。

有关 onstat 实用程序的信息,请参阅 监视数据库服务器状态

日志记录显示过滤器

语法
元素 用途 关键注意事项
-l 显示逻辑日志记录的长列表 日志记录的长列表包含整个日志记录的复合十六进制和 ASCII 转储。该列表不是供随意使用的。
-ttblspace_num 显示与所指定 tblspace 相关联的记录 无符号整数。编号(大于 0 )必须在 systables 系统目录的 partnum 列中。

将该值指定为整数或十六进制值(如果不使用 0x 前缀,那么该值作为整数解释)。要确定特定 tblspace 的 tblspace 编号,请查询 systables 系统目录表,它在 Tblspace 编号 中进行描述。

-u username 显示特定用户的记录 用户名必须是现有的登录名。用户名必须符合特定于操作系统的登录名规则
-x transaction_id 只显示与所指定事务相关联的记录 值必须是 0 和 TRANSACTIONS - 1(包括 0 和 TRANSACTIONS - 1)之间的无符号整数。

只在前滚过程中生成了错误的情况(不太可能发生的情况)下才能使用 -x 选项。当发生这种情况时,数据库服务器向消息日志发送消息,消息包含出错事务的事务 ID 。可以使用此事务 ID 和 onlog-x 选项调查错误原因

-c

compression_
                  dictionary_file

使用压缩字典来扩展压缩数据并显示未压缩的数据 如果 onlog 命令包含 -l 选项和 -c 选项并且日志记录中有压缩图像,那么 onlog 实用程序使用压缩字典扩展该日志记录中的所有可扩展的图像。

压缩图像只在压缩字典文件中具有有效压缩字典的日志记录的条件下是可扩展的。如果 -c 没有被指定或压缩字典文件没有一个该压缩图像的有效压缩字典,那么 onlog 实用程序将显示其压缩格式中的行图像。

如果您没有压缩字典文件,可以使用 UNLOAD 命令加载该压缩字典给压缩字典文件,它将包含在 sysmaster 数据库的 syscompdicts_full 表中,示例如下:

UNLOAD TO 'compression_dictionary_file'
        SELECT * FROM sysmaster:syscompdicts_full;
      

如果未指定任何选项,onlog 显示日志记录中所有记录的简单列表。可以将这些选项与任何其他选项组合使用,以生成更有选择性的过滤器。例如:如果同时使用 -u-x 选项,那么 onlog 只显示在指定事务过程中指定用户启动的活动。如果同时使用 -u-t 选项,那么 onlog 只显示由指定用户启动并与指定 tblspace 相关联的活动。

1 请参阅 -FILE 选项
2 请参阅日志记录读取过滤器
3 请参阅日志记录显示过滤器
4 此项只允许出现一次