示例:使用变更历史记录事件监视器来列示 LOAD 操作
可使用变更历史记录事件监视器来跟踪针对数据库执行的所有 LOAD 操作。
方案
在此示例中,数据库管理员 (DBA) 要捕获和列示针对数据库的所有装入实用程序执行的历史记录。要跟踪装入实用程序事件,请执行以下操作:- 创建用于跟踪 LOAD 事件的变更历史记录事件监视器。例如:
CREATE EVENT MONITOR MON_LOAD FOR CHANGE HISTORY WHERE EVENT IN (LOAD) WRITE TO TABLE CHANGESUMMARY (TABLE UTIL_COMMON), UTILSTART (TABLE LOAD_START), UTILSTOP (TABLE LOAD_STOP) UTILLOCATION (TABLE LOAD_INPUT_FILES) UTILPHASE (TABLE LOAD_PHASES); - 激活事件监视器。
SET EVENT MONITOR MON_LOAD STATE=1 - 查询逻辑数据组以查找有关针对数据库执行的 LOAD 操作的信息。例如,下列查询列示所有已执行装入实用程序的启动和停止时间。此查询仅显示协调程序启动和停止时间。它会忽略暂停和恢复记录以显示实用程序执行的完整耗用时间。
SELECT A.APPL_ID, A.COORD_MEMBER, A.EVENT_TIMESTAMP AS START_TIME, B.EVENT_TIMESTAMP AS STOP_TIME, A.TABLE_SCHEMA, A.TABLE_NAME, SQLCODE, VARCHAR(A.UTILITY_DETAIL, 200) AS DETAIL FROM LOAD_START AS A LOAD_STOP AS B UTIL_COMMON AS C WHERE A.UTILITY_INVOCATION_ID = B.UTILITY_INVOCATION_ID AND A.UTILITY_START_TYPE = 'START' AND B.UTILITY_STOP_TYPE = 'STOP' AND A.MEMBER = B.MEMBER AND A.MEMBER = A.COORD_MEMBER ORDER BY A.EVENT_TIMESTAMP ASC
查询结果显示执行了两个装入实用程序,并且提供有关它们的启动和停止时间的详细信息、装入的目标(表名)以及所执行装入的详细信息。
APPL_ID START_TIME STOP_TIME
------------------------ -------------------------- --------------------------
*LOCAL.test.110131213809 2010-10-31-17.29.04.545210 2010-10-31-17.29.04.545210
*LOCAL.test.110131213809 2010-10-31-17.29.04.545210 2010-10-31-17.29.04.545210
TABLES_SCHEMA TABLE_NAME SQLCODE DETAIL
------------- ---------- ------- --------.....
TEST T1 0 LOAD CURSOR..
TEST T3 0 LOAD DEL...
2 record(s) selected.