启用事件监视数据收集

根据您正在使用的事件监视器的类型,您可能需要在创建该事件监视器后配置收集。 缺省情况下,某些事件监视器会在激活后立即收集某些数据。其他事件监视器要求您以独立于创建事件监视器的方式显式配置数据收集。这些类型的事件监视器有时又称为被动事件监视器。

开始之前

必须先激活所有事件监视器,所有数据才会写至其目标输出表(常规表或 UE 表)、文件或管道。某些事件监视器在缺省情况下配置为 AUTOSTART 事件监视器。这意味着它们在数据库激活时自动激活。其他事件监视器在缺省情况下配置为需要您手动激活。在任一方式下,您都可覆盖缺省启动选项。但是,要在您创建自动事件监视器后下次数据库激活前启动该事件监视器,必须使用 SET EVENT MONITOR STATE 语句以手动激活该事件监视器。

关于此任务

某些事件监视器支持在 CREATE 或 ALTER EVENT MONITOR 语句上使用 WHERE 子句以选择性地捕获事件信息。但是,以下事件监视器能够控制哪些事件数据以独立于事件监视器定义的方式进行收集:
  • 活动
  • 变更历史记录
  • 锁定
  • 统计
  • 工作单元
缺省情况下,某些列示的事件监视器在事件监视器激活后收集某些类型的数据;其他事件监视器要求您显式启用数据收集。在任一方式下,都可以两种方式的其中一种来启用数据收集,这取决于您要为其收集数据的活动的作用域:
数据库中的所有活动
要收集数据库中的所有活动的监视数据,应针对您关心的数据类型修改适当的配置参数。例如,要收集在数据库中运行的所有工作单元的工作单元数据,请将 mon_uow_data 设置为 BASE。在某些情况下,配置参数的缺省设置为:如果存在处于活动状态的适当事件监视器可接收某种类型的数据,那么始终会收集该数据。例如,mon_req_metrics 的缺省设置为 BASE(除非您覆盖此设置);所有处于活动状态的统计事件监视器或工作单元事件监视器都会记录请求监视元素的 BASE 集合的值。
切记: 支持使用 WHERE 谓词的事件监视器仅收集满足该谓词中指定条件的数据,不管任何相关配置参数的设置如何都是如此。
所选活动
某些事件监视器 - 特别是工作负载管理事件监视器(阈值违例、统计信息和活动)- 能够控制特定工作负载管理对象的数据收集。例如,您可选择收集正在特定服务超类中运行的活动的活动信息。在此级别配置收集通常包括向 CREATE 或 ALTER WORKLOAD(或者,SERVICE CLASS 或 WORK ACTION)语句添加 COLLECT 子句,以指定要对在该 WLM 对象的保护下运行的活动收集的信息类型。例如,为了对服务类 urgent 启用扩展统计信息收集,可使用以下语句:
ALTER SERVICE CLASS urgent 
      COLLECT AGGREGATE ACTIVITY DATA EXTENDED
注: 如果在 WLM CREATE 或 ALTER 语句中指定 COLLECT 子句,那么对于该 WLM 对象,在该子句中指定的设置优先于使用配置参数配置的任何数据库范围的设置。例如,如果 mon_req_metrics 设置为 EXTENDED 并且工作负载 payroll 配置为收集 BASE 请求指标(例如,CREATE WORKLOAD payroll COLLECT REQUEST METRICS BASE),那么会针对数据库中的所有活动(payroll 工作负载除外)收集扩展请求指标。

过程

要对本节开头显示的其中一种类型的事件监视器启用数据收集,请执行以下步骤:

  1. 确定缺省情况下是否已收集任何数据。可能不需要您更改任何设置就会收集您关心的数据。
  2. 决定要对其收集数据的活动的作用域。您是要对整个数据库收集数据,还是仅对特定工作负载、服务类或工作操作收集数据?
  3. 决定要收集的监视元素的类型。某些事件监视器支持收集不同类型的监视数据,例如,请求监视元素、活动数据等。
  4. 对于所收集监视数据的不同集合,决定要在每个集合内收集的数据的范围。您通常可选择不收集任何数据 (NONE)、收集基本数据 (BASE) 或扩展数据 (EXTENDED)。请进行查看以确定要针对每个设置收集的数据。
  5. 根据先前步骤中所做的决定,使用配置参数或 COLLECT 子句来配置数据收集。
    1. 要针对整个数据库配置收集,请设置适当的配置参数。例如,要启用通过数据库 SALES 上的锁定事件监视器对带有历史记录的锁定等待信息的收集,请运行以下命令。
      UPDATE DATABASE CONFIGURATION for SALES USING mon_lockwait HISTORY 
    2. 要配置对特定工作负载的收集,请创建或修改该工作负载并包括适当的 COLLECT 子句。
      例如,要对 MANAGERS 工作负载中锁定等待长于 5 秒的情况配置带有语句历史记录的锁定等待数据的收集,请运行类似如下的语句:
         ALTER WORKLOAD MANAGERS
           COLLECT LOCK WAIT DATA FOR LOCKS WAITING MORE THAN 5 SECONDS
             WITH HISTORY

下一步做什么

现在事件监视器已创建并处于活动状态,并且数据收集已启用,请运行应用程序或工作负载。