无法在 aix 中创建事件监视器 db2detaildeadlock

Posted

技术标签:

【中文标题】无法在 aix 中创建事件监视器 db2detaildeadlock【英文标题】:fail to create event monitor db2detaildeadlock in aix 【发布时间】:2018-08-09 01:40:02 【问题描述】:

基于此链接,http://www-01.ibm.com/support/docview.wss?uid=swg21193054 我正在尝试在我的 db2 数据库中创建事件监视器 db2detaildeadlock。

我正在运行以下命令:

db2 create event monitor db2detaildeadlock for deadlocks with details write to file 'db2detaildeadlock' maxfiles 20 maxfilesize 512 buffersize 17 blocked append autostart

但是打

DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL0104N  An unexpected token "DB2DETAILDEADLOCK" was found following "etails
write to file".  Expected tokens may include:  "CHAR_STRING_LITERAL".

我在 AIX 服务器上运行我的 db2 数据库,此命令是否有任何其他语法更改?

My database server : DB2/AIX64 10.5.9

有什么方法可以检查我的事件监视器db2detaildeadlock 是激活还是停用?因为遇到死锁后我看不到任何死锁日志。

【问题讨论】:

尝试使用不同的名称 - 有一个具有相同名称的默认监视器。当您创建显示器时,请摆脱旧显示器,避免使用两台具有相同任务的显示器。就我个人而言,我建议不要写入文件而是写入表,这大大简化了分析部分。 如果我成功运行这个命令,那么死锁日志会记录到db2detaildeadlock文件吗?还是那些 0000001.evt 文件? 如果您使用的是 10.5 版,则不应使用 v9 和 v8 的信息(您可以在 SWG21193054 中看到)。有关最新语法,请参阅正确版本的知识中心。如果您还没有删除预先提供的 db2detaildeadlock 监视器,那么为什么还要尝试创建它呢?为了确保激活事件监视器,然后使用db2 set event monitor db2detaildeadlock state=1 显式激活它(命令行操作示例)。这要么成功,要么报警告 SQL1615W(已激活)。 看起来你的引号正在被shell解释;尝试`db2“为死锁创建事件监视器evmon_dl,并将详细信息写入文件'db2detaildeadlock' maxfiles 20 maxfilesize 512 buffersize 17 blocked append autostart” 【参考方案1】:

此 SQL 将显示事件监视器的状态

SELECT  SUBSTR(EVMONNAME,1,40) AS EVMON_NAME
,       TARGET_TYPE
,       SUBSTR(OWNER,1,8)        AS OWNER
,       CASE    EVENT_MON_STATE(EVMONNAME)
                WHEN 0 THEN '0 Inactive'
                WHEN 1 THEN '1 Active'
        END                                     AS STATE
FROM SYSCAT.EVENTMONITORS

【讨论】:

以上是关于无法在 aix 中创建事件监视器 db2detaildeadlock的主要内容,如果未能解决你的问题,请参考以下文章

AIX文件系统之系统安装过程中创建的文件系统

无法在 cloudformation 中创建带有事件的 s3 存储桶,以连接到它

一个脚本中的多个 inotify 事件

sh 使用此脚本在mongodb中创建条目以监视数据

如何使用看门狗监视在Python中创建或删除的文件的时间

在 Linux 中创建守护进程