示例:使用变更历史记录事件监视器来报告实用程序执行的历史记录
可使用变更历史记录事件监视器来跟踪针对数据库执行的实用程序操作。
方案
在此示例中,数据库管理员 (DBA) 要捕获和列示针对数据库的实用程序事件执行。要报告实用程序事件,请执行以下操作:- 创建用于跟踪实用程序事件的变更历史记录事件监视器。例如:
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; - 启用事件监视器。
SET EVENT MONITOR MON_UTIL STATE=1 - 查询逻辑数据组以查找有关针对数据库执行的实用程序操作的信息。例如,下列查询列示针对每个成员的每个实用程序调用的历史记录。
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.