示例:使用变更历史记录事件监视器来报告实用程序执行的历史记录

可使用变更历史记录事件监视器来跟踪针对数据库执行的实用程序操作。

方案

在此示例中,数据库管理员 (DBA) 要捕获和列示针对数据库的实用程序事件执行。要报告实用程序事件,请执行以下操作:
  1. 创建用于跟踪实用程序事件的变更历史记录事件监视器。例如:
     CREATE EVENT MONITOR MON_UTIL
        FOR CHANGE HISTORY WHERE EVENT IN (UTILALL)
        WRITE TO TABLE
           CHANGESUMMARY (TABLE UTIL_COMMON),
           UTILSTART (TABLE UTIL_START),
           UTILSTOP (TABLE UTIL_STOP)
           UTILLOCATION (TABLE UTIL_LOCATION)
           UTILPHASE (TABLE UTIL_PHASES) AUTOSTART;
  2. 启用事件监视器。
     SET EVENT MONITOR MON_UTIL STATE=1
  3. 查询逻辑数据组以查找有关针对数据库执行的实用程序操作的信息。例如,下列查询列示针对每个成员的每个实用程序调用的历史记录。
    WITH UTIL_HIST(TIMESTAMP, UTIL_TYPE, ACTION, PHASE_TYPE, UTILITY_INVOCATION_ID,
          MEMBER, SQLCODE) AS
     (SELECT A.EVENT_TIMESTAMP,
            A.UTILITY_TYPE,
            CAST('START' AS VARCHAR(32)),
            CAST(NULL AS VARCHAR(16)),
            A.UTILITY_INVOCATION_ID,
            A.MEMBER,
            CAST(NULL as INTEGER)
     FROM UTIL_START AS A
     UNION ALL
      SELECT B.EVENT_TIMESTAMP,
              B.UTILITY_TYPE,
              CASE WHEN EVENT_TYPE IN ('UTILPHASESTART') THEN
                 CAST('PHASE START' AS VARCHAR(32))
              ELSE
                 CAST('PHASE STOP' AS VARCHAR(32))
              END CASE,
              CAST(UTILITY_PHASE_TYPE AS VARCHAR(16)),
              B.UTILITY_INVOCATION_ID,
              B.MEMBER,
              CAST(NULL as INTEGER)
      FROM UTIL_PHASES AS B
     UNION ALL
      SELECT C.EVENT_TIMESTAMP,
              C.UTILITY_TYPE,
              CAST('STOP' AS VARCHAR(32)),
              CAST(NULL AS VARCHAR(16)),
              C.UTILITY_INVOCATION_ID,
              C.MEMBER,
              C.SQLCODE
      FROM UTIL_STOP AS C)
    SELECT * FROM UTIL_HIST
    ORDER BY UTILITY_INVOCATION_ID, MEMBER, TIMESTAMP ASC
生成的实用程序事件报告可用于:
  • 标识重叠的任何实用程序。例如,一个实用程序尚未在分区上停止,另一个实用程序就在同一分区上启动。
  • 确定实用程序将其时间消耗在何处。例如,在每个阶段消耗的时间。注意:在 V11.1 中,它仅对联机备份的表空间备份阶段可用。
TIMESTAMP                  UTIL_TYPE ACTION      PHASE_TYPE    UTILITY_INVOCATION_ID MEMBER SQLCODE
-------------------------- --------- ----------  ------------- --------------------- ------ -------
2010-10-31-17.29.04.545210 LOAD      START       -             x'18A901F...621'      0      -
2010-10-31-17.50.04.344230 LOAD      STOP        -             x'18A901F...621'      0      0
2010-10-31-17.29.04.545211 LOAD      START       -             x'18A901F...633'      1      -
2010-10-31-17.50.04.344229 LOAD      STOP        -             x'18A901F...633'      1      0
2010-10-31-17.29.04.344210 BACKUP    START       -             x'18A901F...645'      0      -
2010-10-31-17.50.04.344211 BACKUP    PHASE START BACKUPTS      x'18A901F...645'      0      0
2010-10-31-17.51.04.545214 BACKUP    PHASE STOP  BACKUPTS      x'18A901F...645'      0      -
2010-10-31-17.52.04.344218 BACKUP    STOP        -             x'18A901F...645'      0      0
8 record(s) selected.