在创建事件监视器时,必须确定所收集信息的存储位置。管道事件监视器直接将事件记录从事件监视器传输至命名管道。
开始之前
- 您需要 SQLADM 或 DBADM 权限才能创建管道事件监视器。
- 此任务假定已创建命名管道。要在 UNIX 或 Linux
系统上创建命名管道,请使用这些系统上提供的 mkfifo 命令。
关于此任务
在事件监视器写入事件数据时,将由监视应用程序迅速读取管道中的数据。如果事件监视器无法将数据写至管道(例如,如果管道已满),那么监视数据将会丢失。管道事件监视器将使用 CREATE EVENT MONITOR 语句定义。
过程
- 指示会将事件监视数据引导至命名管道。
CREATE EVENT MONITOR myevmon FOR eventtype
WRITE TO PIPE '/home/dbadmin/dlevents'
myevmon 是事件监视器的名称。
/home/dbadmin/dlevents 是事件监视器会将事件记录引导至的命名管道的名称(在 UNIX 上)。CREATE EVENT MONITOR
语句支持 UNIX 和 Windows 管道命名语法。
激活事件监视器时,CREATE EVENT MONITOR 语句中指定的命名管道必须存在并且打开。如果指定事件监视器将自动启动,那么在创建事件监视器之前命名管道必须存在。
- 指定要监视的事件的类型。可使用单个事件监视器来监视一个或多个事件类型。
CREATE EVENT MONITOR myevmon FOR BUFFERPOOLS, TABLESPACES
WRITE TO PIPE '/home/dbadmin/myevents'
此事件监视器将监视 BUFFERPOOLS 和 TABLESPACES 事件类型。
- 指定每次数据库启动时是否自动激活事件监视器。在缺省情况下,数据库启动时不会自动激活事件监视器。
- 要创建在数据库启动时自动启动的事件监视器,请发出以下语句:
CREATE EVENT MONITOR myevmon FOR BUFFERPOOLS, TABLESPACES
WRITE TO PIPE '/home/dbadmin/myevents'
AUTOSTART
- 要创建在数据库启动时不自动启动的事件监视器,请发出以下语句:
CREATE EVENT MONITOR myevmon FOR BUFFERPOOLS, TABLESPACES
WRITE TO PIPE '/home/dbadmin/myevents
MANUALSTART
- 启动从命名管道读取的客户机应用程序。例如,可启动 db2evmon
工具以在数据传送至管道时处理该数据。
- 要激活或释放事件监视器,请使用
SET EVENT MONITOR STATE 语句。
结果
创建并激活管道事件监视器后,该事件监视器将在其指定事件发生时记录监视数据。