收集变更历史记录事件数据

可使用变更历史记录事件监视器来收集有关可能影响数据库和数据库管理系统性能、行为和稳定性的活动的信息。

开始之前

要创建变更历史记录事件监视器并收集变更历史记录事件监视数据,您必须具有 DBADM 或 SQLADM 权限。

关于此任务

变更历史记录事件监视器捕获可能影响常规数据库工作负载运行的更改。常规工作负载遇到性能降低或您发现意外行为时,必须确定发生了哪些可能导致该问题的更改。每个与更改相关的事件通常由以下 3 个关键字段唯一标识:
事件时间戳记
事件发生的时间。
事件标识
用于确保事件时间戳记相同时的唯一性的数字标记。
成员
发生该事件的数据库管理器进程。成员确保全局唯一性,因为事件时间戳记和事件标识仅对于每个成员是唯一的。

所有逻辑组都包含这 3 个字段,对于这些字段,与同一事件相对应的所有记录或行包含相同的值。这些相同值会使不同逻辑数据组之间的信息连接顺利进行。针对不同成员的实用程序操作和配置参数更新会作为不同事件捕获,并且会导致这些关键字段的值不同。

限制

变更历史记录事件监视数据只能写至与逻辑数据组相关联的表。这些变更历史记录事件监视器不会写至无格式事件表、文件或命名管道。

过程

要收集有关可能影响数据库性能、行为或稳定性的活动的详细信息,请执行以下步骤:

  1. 决定您所关心的变更历史记录事件。变更历史记录事件监视器能够捕获描述下列各项的事件:
    • 配置参数更改
    • 注册表变量更改
    • DDL 执行
    • 落实、回滚或回滚至保存点的实例
    • 事件监视器启动信息
    • 实用程序启动信息
    • 实用程序路径或文件信息
    • 实用程序停止信息
    • 实用程序阶段信息
  2. 使用 CREATE EVENT MONITOR FOR CHANGE HISTORY 语句来创建名为 whats_changed 的变更历史记录事件监视器。使用 WHERE EVENT IN 子句来指定应捕获的变更历史记录事件。以下事件说明如何创建用于捕获所有事件类型的变更历史记录事件监视器:
    CREATE EVENT MONITOR whats_changed 
       FOR CHANGE HISTORY WHERE EVENT IN (ALL)
       WRITE TO TABLE
  3. 通过运行以下语句来激活名为 whats_changed 的变更历史记录事件监视器:
    SET EVENT MONITOR whats_changed STATE 1

结果

每当在变更历史记录事件监视器处于活动状态时发生变更历史记录事件(例如,数据库配置更新),都将在变更历史记录事件监视器表中捕获有关该事件的信息。变更历史记录事件监视器只会捕获该事件监视器的 WHERE EVENT IN 子句中标识的事件。

示例