事件监视器文件管理
使用某些事件监视器,您可以将事件数据写入到文本文件中。可以配置某些所创建文件数量的上限,及其 CREATE 或 ALTER EVENT MONITOR 语句上选项的大小。
文件事件监视器允许事件监视器将其事件记录存储在文件中。事件监视器的所有输出将存储在 CREATE EVENT
MONITOR 语句的 FILE 参数提供的目录中。在激活监视器之前,此目录必须存在,否则 SET EVENT MONITOR
命令将返回错误;如果此目录还不存在,那么数据库管理器不会创建此目录。
要点: 当第一次激活文件事件监视器时,将在此目录中创建控制文件 db2event.ctl。不要移除或修改此文件。
在缺省情况下,事件监视器会将跟踪写至称为 00000000.evt 的单个文件。只要文件系统上还有空间,此文件就会一直增长。如果使用 CREATE EVENT MONITOR 语句的 MAXFILESIZE 参数指定了文件大小限制,那么在文件已满时,输出将自动导向下一个文件。每次创建一个新文件时,构成文件名的数字便加 1。因此,活动文件就是具有最高编号的文件。
还可通过使用 CREATE EVENT MONITOR 语句的 MAXFILES 参数来限制整个事件监视器跟踪的最大大小。当文件数达到 MAXFILES
定义的最大数目时,事件监视器将释放自身,并且会向管理通知日志写入以下消息。
DIA1601I Event Monitor monitor-name was deactivated when it reached
its preset MAXFILES and MAXFILESIZE limit. 如果您收到此消息,那么请勿删除任何事件监视器文件。如果您删除了任何文件,将不能使用 db2evmon 命令查看任何事件监视器信息(即使是任何其余文件中包含的此类信息)。请改为执行下列其中一项操作:
- 在没有 MAXFILES 和 MAXFILESIZE 限制的情况下重新创建事件监视器。
- 将 MAXFILES 和 MAXFILESIZE 参数所实施的限制保留不变,但是将目录中的所有文件(最新的 *.evt 文件除外)移动到其他目录或文件系统。然后您便可在新目录的文件中查看事件监视器信息。如果需要,可创建一个脚本来自动执行该操作。
重新启动文件事件监视器时,它会擦除任何现有数据或追加的新数据。在 CREATE EVENT MONITOR 语句中指定此选项,并可创建 APPEND 监视器或 REPLACE 监视器。APPEND 是缺省选项。APPEND 事件监视器开始在上次使用的文件结尾写入。如果已移除该文件,那么会使用下一个顺序文件编号。重新启动追加事件监视器时,仅生成 start_event。仅对第一次激活生成事件日志头和数据库头。REPLACE 事件监视器总是会删除现有事件文件并开始在 00000000.evt 中写入。
注: 如果您未对事件监视器使用 REPLACE 选项,那么可执行以下步骤来强制事件监视器开始收集新数据集:
- 使用 SET EVENT MONITOR event-monitor-name STATE 0 命令停用事件监视器。
- 删除 CREATE EVENT MONITOR 语句的 FILE 选项所指定目录中的所有文件。
- 使用 SET EVENT MONITOR event-monitor-name STATE 1 命令重新激活事件监视器。
如果文件事件监视器用完了磁盘空间,那么在管理通知日志中记录系统错误级别消息后,它会关闭自身。
您可能想要在事件监视器活动时处理监视数据。这是可行的,而且在处理完文件后可以删除它,从而释放空间以供后续监视数据使用。除非停止并重新启动事件监视器,否则不能强制事件监视器切换至下一个文件。它必须也处于 APPEND 方式。为跟踪在活动文件中处理的事件,可创建一个应用程序,它只跟踪已处理的上一个记录的文件编号和位置。下一次处理跟踪时,该应用程序可搜索该文件的位置。