您可以删除 DB2DETAILDEADLOCK 中的 evt 文件吗?

Can you delete evt files in DB2DETAILDEADLOCK?

在我的 IBM DB2 服务器(它是 linux 服务器)中,我遇到一个问题,即 db2/db2_1 被 100% 使用。在这个目录中,我看到在路径“/db2/db2_1/db2inst1/NODE0000/SQL00001/db2event/db2detaildeadlock”中有很多 XXXX.evt 文件占用了一些磁盘 space.

linuxprod:/db2/db2_1/db2inst1/NODE0000/SQL00001/db2event/db2detaildeadlock> ll
   -rw-r--r-- 1 db2inst1 db2iadm1   2096934 2010-01-11 07:17 00000000.evt
   -rw-r--r-- 1 db2inst1 db2iadm1   2089026 2011-12-12 07:12 00000001.evt
   -rw-r--r-- 1 db2inst1 db2iadm1   2091422 2012-02-06 06:43 00000002.evt
   -rw-r--r-- 1 db2inst1 db2iadm1   2088934 2012-06-04 07:06 00000003.evt
   -rw-r--r-- 1 db2inst1 db2iadm1   1662969 2013-03-21 15:54 00000004.evt
   -rw-r--r-- 1 db2inst1 db2iadm1   1950082 2014-06-26 13:28 00000005.evt
   -rw-r--r-- 1 db2inst1 db2iadm1   2069150 2015-02-19 13:24 00000006.evt
   -rw-r--r-- 1 db2inst1 db2iadm1    203704 2015-04-14 16:30 00000007.evt
   -rw-r--r-- 1 db2inst1 db2iadm1 131061876 2015-04-14 16:30 00000008.evt
   -rw-r--r-- 1 db2inst1 db2iadm1    873559 2015-04-20 15:29 00000009.evt
   -rw-r--r-- 1 db2inst1 db2iadm1 129650884 2015-04-20 15:29 00000010.evt
   -rw-r--r-- 1 db2inst1 db2iadm1    371426 2015-07-07 15:10 00000011.evt
   -rw-r--r-- 1 db2inst1 db2iadm1 154020299 2015-07-07 15:10 00000012.evt
   -rw-r--r-- 1 db2inst1 db2iadm1    385652 2015-09-01 18:03 00000013.evt
   -rw-r--r-- 1 db2inst1 db2iadm1 150405814 2015-09-01 18:03 00000014.evt
   -rw-r--r-- 1 db2inst1 db2iadm1   2011825 2017-03-01 08:11 00000015.evt
   -rw-r--r-- 1 db2inst1 db2iadm1 129911624 2017-03-01 08:11 00000016.evt
   -rw-r--r-- 1 db2inst1 db2iadm1   1969859 2018-06-27 15:00 00000017.evt
   -rw-r--r-- 1 db2inst1 db2iadm1   2083040 2019-07-04 09:04 00000018.evt
   -rw-r--r-- 1 db2inst1 db2iadm1    765463 2019-09-16 16:54 00000019.evt
   -rw-r----- 1 db2inst1 db2iadm1        43 2019-07-04 09:04 db2event.ctl

是否可以删除此 .evt 文件(或将它们移动到其他磁盘)?如果我删除它们会怎样?

是的,您可以删除这些 .evt 文件,但后果是您(或任何 DBA)将无法调查那些死锁/超时事件(除非它们是可重现的)。

您也可以将它们移动到另一个位置,以便稍后通过相关工具进行检查,这可能是生产系统最安全的选择。

这些文件很可能不是那个文件系统中space的主要用户,所以一定要先消除(或控制)主要的space消费者。

也许您应该考虑调查和解决导致 deadlocks/timeouts 的事件?

也可以禁用创建这些文件的相关事件监视器,并且可以通过配置来控制文件的大小和数量。有关此配置的详细信息,请参阅 Db2 知识中心 activity。

是的,删除旧事件文件是安全的。由于您似乎并没有使用这个事件监视器,所以您最好禁用它:

set event monitor DB2DETAILDEADLOCK state 0

死锁事件监视器是 deprecated since Db2 9.7,因此您可能应该考虑完全放弃它并创建一个新的锁事件监视器,它会收集更多有用的信息。