使用变更历史记录事件监视器来监视实用程序历史记录

变更历史记录事件监视器可捕获与实用程序执行相关的一些事件。可使用这些事件来监视数据库服务器上的实用程序执行的历史记录。 此事件历史记录会写至逻辑数据组,其中每个逻辑数据组都有关联事件监视器表。

执行实用程序可在变更历史记录事件监视器中生成一个或多个事件。例如,执行 REORG 实用程序会生成两个事件,分别标记 REORG 操作的开始和结束。事件与逻辑数据组之间存在一对多映射。一个事件可将信息写至多个逻辑数据组,并且可将多个条目(行)写至与给定逻辑数据组相关联的表。对应实用程序的特定调用的每个事件由 utility_invocation_id 元素标识。utility_invocation_id 实用程序是二进制标记,用于唯一标识实用程序的给定调用。utility_invocation_id 在执行该实用程序的每个成员上相同。utility_invocation_id 在数据库取消激活、重新激活和成员关闭期间保持其唯一性,以允许快速标识对应实用程序的给定调用的所有事件监视器记录。不需要连接其他字段或担心重复标识。

通过使用 utility_invocation_id,可标识用于描述实用程序的特定调用的所有事件。例如,如果对表发出 REORG 命令,那么实用程序开始执行时生成 UTILSTART 事件,在实用程序完成执行时生成 UTILSTOP 事件。UTILSTART 和 UTILSTOP 事件将具有相同 utility_invocation_id,因为它们描述 REORG 命令的同一调用。utility_invocation_id 可用来连接这些事件以计算实用程序的耗用时间。

变更历史记录事件监视器可监视以下实用程序类型的执行:
  • BACKUP
  • LOAD
  • MOVETABLE
  • ONLINERECOVERY
  • REDISTRIBUTE
  • REORG
  • RESTORE
  • ROLLFORWARD
  • RUNSTATS
变更历史记录事件监视器不会捕获脱机备份、复原或前滚操作的执行。仅当联机恢复操作执行异步回滚阶段时,才会捕获联机恢复操作。请注意,仅当变更历史记录事件监视器在实用程序执行期间处于活动状态,才会捕获实用程序事件。如果在实用程序执行之前取消激活事件监视器,那么不会针对该实用程序的执行捕获任何事件。例如,如果实用程序需要对事件监视器目标表所在的表空间执行互斥存取。
下表列示与实用程序执行事件相关联的变更历史记录事件监视器逻辑数据组及关联表。表名通过将用于填充表的逻辑数据组的名称与使用 CREATE EVENT MONITOR 语句创建事件监视器时给予该事件监视器的名称并置派生。所显示表名是未在 CREATE EVENT MONITOR 语句中指定名称时的缺省表名。
表 1. 实用程序执行期间填充的逻辑数据组
逻辑数据组 缺省表名 包含
CHANGESUMMARY CHANGESUMMARY_evmon-name 变更历史记录事件监视器捕获的所有事件的摘要
UTILSTART UTILSTART_evmon-name 实用程序启动信息
UTILLOCATION UTILLOCATION_evmon-name 实用程序路径或文件信息
UTILSTOP UTILSTOP_evmon-name 实用程序停止信息
UTILPHASE UTILPHASE_evmon-name 实用程序阶段信息
CREATE EVENT MONITOR (变更历史记录)的 WHERE EVENT IN 子句控制变更历史记录事件监视器监视的实用程序。以下列表指示哪些控件启用了哪些实用程序的捕获:
UTILALL
捕获装入、移动表、联机备份、联机恢复、恢复复原、联机前滚、重新分发、reorg 和 runstats 实用程序的执行。
BACKUP
捕获联机备份实用程序的执行。
LOAD
捕获装入实用程序的执行。
MOVETABLE
捕获表移动实用程序的执行(ADMIN_MOVE_TABLE 存储过程的调用)。
ONLINERECOVERY
捕获崩溃恢复操作的执行,该操作利用的异步回滚阶段允许在执行该操作期间进行数据库连接。(这包括在 HADR TAKEOVER 期间执行隐式崩溃恢复)。
REDISTRIBUTE
捕获重新分发分区组实用程序的执行。
REORG
捕获 reorg 实用程序的执行。
RESTORE
捕获联机复原实用程序的执行。
ROLLFORWARD
捕获联机前滚实用程序的执行。
RUNSTATS
捕获 runstats 实用程序的执行。