首页 > 数据库 > Oracle > [20260327]为什么删除不彻底.txt
[20260327]为什么删除不彻底.txt
--//测试环境磁盘空间有点紧张,直接删除oracle trace目录下文件,发现一个现象,通过真实的情况说明:
--//为了更好演示,重启数据库。
1.问题提出:
$ cd /u01/app/oracle/diag/rdbms/book/book/trace
$ ll -i *dia0*
314263 -rw-r-----. 1 oracle oinstall 2354 2026-03-28 09:51:29 book_dia0_4012_base_1.trc
314264 -rw-r-----. 1 oracle oinstall 1016 2026-03-28 09:51:29 book_dia0_4012_base_1.trm
314258 -rw-r-----. 1 oracle oinstall 1367 2026-03-28 09:51:29 book_dia0_4012.trc
314259 -rw-r-----. 1 oracle oinstall 1032 2026-03-28 09:51:29 book_dia0_4012.trm
$ rm -f *.trc *.trm
--//注: 测试环境,这些文件不重要,选择直接删除,另外文件数量不多,如果很多,使用find命令。
$ ll -i *dia0*
ls: cannot access *dia0*: No such file or directory
--//开始没注意,实际上要很快执行,慢一点看不见这些信息。
$ ll -i *dia0*
314242 -rw-r-----. 1 oracle oinstall 2414 2026-03-28 09:52:11 book_dia0_4012_base_1.trc
314246 -rw-r-----. 1 oracle oinstall 1041 2026-03-28 09:52:11 book_dia0_4012_base_1.trm
--//注意看文件inode号与前面不同,可以发现新生成的相同文件名。
--//也可以看出实际上相关文件是删除了,不过马上又建立了相关文件。
2.分析:
$ pgrep -l dia0
4012 ora_dia0_book
$ ll /proc/4012/fd/{7..10}
l-wx------. 1 oracle oinstall 64 2026-03-28 09:56:19 /proc/4012/fd/10 -> /u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trm
l-wx------. 1 oracle oinstall 64 2026-03-28 09:56:19 /proc/4012/fd/7 -> /u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012.trc (deleted)
l-wx------. 1 oracle oinstall 64 2026-03-28 09:56:19 /proc/4012/fd/8 -> /u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012.trm (deleted)
l-wx------. 1 oracle oinstall 64 2026-03-28 09:56:19 /proc/4012/fd/9 -> /u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc
--//很明显句柄7,8对应的文件已经删除.
--//再来重复一次,写成一行观察:
$ zzdate ; rm -f *.trc *.trm ; ll /proc/4012/fd/{7..10} ; ll -li *dia0* ; sleep 2 ; ll -li *dia0*;ll /proc/4012/fd/{7..10}
trunc(sysdate)+10/24+02/1440+41/86400 1774663361.463559035
l-wx------. 1 oracle oinstall 64 2026-03-28 09:56:19 /proc/4012/fd/10 -> /u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trm (deleted)
l-wx------. 1 oracle oinstall 64 2026-03-28 09:56:19 /proc/4012/fd/7 -> /u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012.trc (deleted)
l-wx------. 1 oracle oinstall 64 2026-03-28 09:56:19 /proc/4012/fd/8 -> /u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012.trm (deleted)
l-wx------. 1 oracle oinstall 64 2026-03-28 09:56:19 /proc/4012/fd/9 -> /u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc (deleted)
ls: cannot access *dia0*: No such file or directory
314242 -rw-r-----. 1 oracle oinstall 2414 2026-03-28 10:02:43 book_dia0_4012_base_1.trc
314246 -rw-r-----. 1 oracle oinstall 1022 2026-03-28 10:02:43 book_dia0_4012_base_1.trm
l-wx------. 1 oracle oinstall 64 2026-03-28 09:56:19 /proc/4012/fd/10 -> /u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trm
l-wx------. 1 oracle oinstall 64 2026-03-28 09:56:19 /proc/4012/fd/7 -> /u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012.trc (deleted)
l-wx------. 1 oracle oinstall 64 2026-03-28 09:56:19 /proc/4012/fd/8 -> /u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012.trm (deleted)
l-wx------. 1 oracle oinstall 64 2026-03-28 09:56:19 /proc/4012/fd/9 -> /u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc
--//可以推断当文件不存在时后台进程dia0,重新建立该文件。
--//跟踪后台进程dia0:
$ strace -f -p 4012 -y -e lstat,stat -Ttt
Process 4012 attached
10:05:35.274091 lstat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", {st_mode=S_IFREG|0640, st_size=2414, ...}) = 0 <0.000044>
10:05:35.274347 stat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", {st_mode=S_IFREG|0640, st_size=2414, ...}) = 0 <0.000093>
10:05:35.274555 lstat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", {st_mode=S_IFREG|0640, st_size=2414, ...}) = 0 <0.000068>
10:05:37.289284 lstat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", {st_mode=S_IFREG|0640, st_size=2414, ...}) = 0 <0.000219>
10:05:37.289905 stat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", {st_mode=S_IFREG|0640, st_size=2414, ...}) = 0 <0.000161>
10:05:37.290287 lstat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", {st_mode=S_IFREG|0640, st_size=2414, ...}) = 0 <0.000152>
10:05:39.308384 lstat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", {st_mode=S_IFREG|0640, st_size=2414, ...}) = 0 <0.000040>
10:05:39.308505 stat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", {st_mode=S_IFREG|0640, st_size=2414, ...}) = 0 <0.000017>
10:05:39.308619 lstat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", {st_mode=S_IFREG|0640, st_size=2414, ...}) = 0 <0.000016>
10:05:41.331397 lstat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", {st_mode=S_IFREG|0640, st_size=2414, ...}) = 0 <0.000042>
10:05:41.331521 stat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", {st_mode=S_IFREG|0640, st_size=2414, ...}) = 0 <0.000069>
10:05:41.331727 lstat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", {st_mode=S_IFREG|0640, st_size=2414, ...}) = 0 <0.000076>
10:05:43.358090 lstat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", {st_mode=S_IFREG|0640, st_size=2414, ...}) = 0 <0.000209>
10:05:43.358582 stat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", {st_mode=S_IFREG|0640, st_size=2414, ...}) = 0 <0.000159>
10:05:43.359042 lstat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", {st_mode=S_IFREG|0640, st_size=2414, ...}) = 0 <0.000229>
10:05:44.360895 lstat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", {st_mode=S_IFREG|0640, st_size=2414, ...}) = 0 <0.000402>
10:05:44.361517 stat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", {st_mode=S_IFREG|0640, st_size=2414, ...}) = 0 <0.000157>
10:05:44.361972 lstat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", {st_mode=S_IFREG|0640, st_size=2414, ...}) = 0 <0.000216>
--//这里出现间隔1秒的情况,不知道为什么。
^CProcess 4012 detached
--//可以发现几乎间隔2秒,进程监测状态。
$ strace -f -p 4012 -y -Ttt
Process 4012 attached
10:07:45.748105 semtimedop(229376, {{24, -1, 0}}, 1, {0, 999999000}) = -1 EAGAIN (Resource temporarily unavailable) <1.009144>
10:07:46.757530 getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 532466}, ru_stime={0, 75728}, ...}) = 0 <0.000021>
10:07:46.757690 lstat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", {st_mode=S_IFREG|0640, st_size=2414, ...}) = 0 <0.000022>
10:07:46.757782 stat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", {st_mode=S_IFREG|0640, st_size=2414, ...}) = 0 <0.000016>
10:07:46.757852 geteuid() = 54321 <0.000015>
10:07:46.757965 open("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", O_RDONLY) = 7 <0.000057>
10:07:46.758076 lstat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", {st_mode=S_IFREG|0640, st_size=2414, ...}) = 0 <0.000019>
10:07:46.758140 fcntl(7</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc>, F_SETFD, FD_CLOEXEC) = 0 <0.000030>
10:07:46.758245 close(7</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc>) = 0 <0.000018>
10:07:46.758578 getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 532466}, ru_stime={0, 75728}, ...}) = 0 <0.000016>
10:07:46.758652 semtimedop(229376, {{24, -1, 0}}, 1, {0, 999999000}) = -1 EAGAIN (Resource temporarily unavailable) <0.999325>
--//sleep 1秒,也许前面出现1秒与此类似。
10:07:47.758063 getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 532466}, ru_stime={0, 75728}, ...}) = 0 <0.000017>
10:07:47.758291 getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 532466}, ru_stime={0, 75728}, ...}) = 0 <0.000015>
10:07:47.758372 lstat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", {st_mode=S_IFREG|0640, st_size=2414, ...}) = 0 <0.000020>
10:07:47.758437 stat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", {st_mode=S_IFREG|0640, st_size=2414, ...}) = 0 <0.000016>
10:07:47.758493 geteuid() = 54321 <0.000012>
10:07:47.758538 open("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", O_RDONLY) = 7 <0.000022>
10:07:47.758595 lstat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", {st_mode=S_IFREG|0640, st_size=2414, ...}) = 0 <0.000016>
10:07:47.758648 fcntl(7</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc>, F_SETFD, FD_CLOEXEC) = 0 <0.000015>
10:07:47.758715 close(7</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc>) = 0 <0.000022>
10:07:47.758838 getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 532466}, ru_stime={0, 75728}, ...}) = 0 <0.000022>
10:07:47.759207 getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 532466}, ru_stime={0, 75728}, ...}) = 0 <0.000015>
10:07:47.759277 semtimedop(229376, {{24, -1, 0}}, 1, {0, 999999000}) = -1 EAGAIN (Resource temporarily unavailable) <1.001378>
10:07:48.760899 semtimedop(229376, {{24, -1, 0}}, 1, {0, 999999000}) = -1 EAGAIN (Resource temporarily unavailable) <1.016042>
--//sleep 2秒。
10:07:49.777054 getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 532466}, ru_stime={0, 75728}, ...}) = 0 <0.000114>
10:07:49.777375 getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 532466}, ru_stime={0, 75728}, ...}) = 0 <0.000015>
10:07:49.778643 getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 533636}, ru_stime={0, 75728}, ...}) = 0 <0.000032>
10:07:49.778787 lstat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", {st_mode=S_IFREG|0640, st_size=2414, ...}) = 0 <0.000045>
10:07:49.778916 stat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", {st_mode=S_IFREG|0640, st_size=2414, ...}) = 0 <0.000017>
10:07:49.778975 geteuid() = 54321 <0.000013>
--//这也是为什么"无法"删除的原因。
$ zzdate ; rm -f *.trc *.trm ; zzdate
trunc(sysdate)+10/24+10/1440+40/86400 1774663840.925663356
trunc(sysdate)+10/24+10/1440+40/86400 1774663840.930495781
$ xxdate 1774663840.925663356
2026-03-28 10:10:40.925663356
$ xxdate 1774663840.930495781
2026-03-28 10:10:40.930495781
$ strace -f -p 4012 -y -Ttt -o dia0.txt
Process 4012 attached
^CProcess 4012 detached
--//查看dia0.txt文件:
...
4012 10:10:39.733914 semtimedop(229376, {{24, -1, 0}}, 1, {0, 999999000}) = -1 EAGAIN (Resource temporarily unavailable) <1.010023>
4012 10:10:40.744032 semtimedop(229376, {{24, -1, 0}}, 1, {0, 999999000}) = -1 EAGAIN (Resource temporarily unavailable) <1.012600>
--//此刻文件已经删除。
4012 10:10:41.756789 getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 623430}, ru_stime={0, 84056}, ...}) = 0 <0.000014>
4012 10:10:41.756890 lstat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", 0x7ffc95acd210) = -1 ENOENT (No such file or directory) <0.000025>
4012 10:10:41.756957 stat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", 0x7ffc95acd2c0) = -1 ENOENT (No such file or directory) <0.000013>
--//监测文件状态失败。
4012 10:10:41.757324 lseek(9</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc (deleted)>, 0, SEEK_CUR) = 2414 <0.000015>
4012 10:10:41.757409 write(9</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc (deleted)>, "\n*** 2026-03-28T10:10:41.757236+"..., 52) = 52 <0.000021>
4012 10:10:41.757486 write(10</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trm (deleted)>, "46l{0O2q-0v0P~\n", 15) = 15 <0.000017>
4012 10:10:41.757560 lseek(9</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc (deleted)>, 0, SEEK_CUR) = 2466 <0.000012>
4012 10:10:41.757607 write(9</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc (deleted)>, "HM: Moving the default trace fil"..., 63) = 63 <0.000016>
4012 10:10:41.757659 write(10</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trm (deleted)>, "3?+G~0+\n", 8) = 8 <0.000016>
4012 10:10:41.757710 write(9</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc (deleted)>, "\n", 1) = 1 <0.000016>
4012 10:10:41.757764 write(9</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc (deleted)>, " ", 1) = 1 <0.000015>
4012 10:10:41.757814 write(9</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc (deleted)>, "\n", 1) = 1 <0.000015>
4012 10:10:41.757930 close(9</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc (deleted)>) = 0 <0.000154>
4012 10:10:41.758143 close(10</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trm (deleted)>) = 0 <0.000065>
---//但是文件句柄还在,可以发现往该文件写入一些信息。
4012 10:10:41.758300 lstat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", 0x7ffc95ac92e0) = -1 ENOENT (No such file or directory) <0.000018>
4012 10:10:41.758367 open("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", O_WRONLY|O_CREAT|O_APPEND, 0660) = 7 <0.000194>
--//建立文件属性append,写入。
4012 10:10:41.758610 lstat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", {st_mode=S_IFREG|0640, st_size=0, ...}) = 0 <0.000015>
4012 10:10:41.758677 chown("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", 4294967295, 54321) = 0 <0.000030>
4012 10:10:41.758754 stat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc", {st_mode=S_IFREG|0640, st_size=0, ...}) = 0 <0.000015>
4012 10:10:41.758804 fcntl(7</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc>, F_SETFD, FD_CLOEXEC) = 0 <0.000012>
4012 10:10:41.758945 lseek(7</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc>, 0, SEEK_END) = 0 <0.000017>
4012 10:10:41.759057 write(7</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc>, "Trace file /u01/app/oracle/diag/"..., 80) = 80 <0.000028>
4012 10:10:41.759138 lstat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trm", 0x7ffc95ac8b10) = -1 ENOENT (No such file or directory) <0.000023>
4012 10:10:41.759203 open("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trm", O_WRONLY|O_CREAT|O_APPEND, 0660) = 8 <0.000098>
--//建立后缀trm文件。
4012 10:10:41.759338 lstat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trm", {st_mode=S_IFREG|0640, st_size=0, ...}) = 0 <0.000015>
4012 10:10:41.759392 ftruncate(8</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trm>, 0) = 0 <0.000022>
4012 10:10:41.759453 chown("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trm", 4294967295, 54321) = 0 <0.000021>
4012 10:10:41.759507 stat("/u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trm", {st_mode=S_IFREG|0640, st_size=0, ...}) = 0 <0.000014>
4012 10:10:41.759553 fcntl(8</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trm>, F_SETFD, FD_CLOEXEC) = 0 <0.000017>
4012 10:10:41.759659 lseek(8</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trm>, 0, SEEK_END) = 0 <0.000011>
4012 10:10:41.759720 write(8</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trm>, "@9|9|Q7cgahGy2\"4012|book|1|1|1|1"..., 38) = 38 <0.000029>
4012 10:10:41.759793 write(8</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trm>, "7^PDB_BITVEC|18|2000000000000000"..., 702) = 702 <0.000090>
4012 10:10:41.759931 write(8</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trm>, "7^APPTRC_BITVEC|1|00==|\n", 24) = 24 <0.000022>
4012 10:10:41.760055 lseek(7</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc>, 0, SEEK_CUR) = 80 <0.000011>
4012 10:10:41.760105 write(7</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc>, "Oracle Database 21c Enterprise E"..., 89) = 89 <0.000017>
4012 10:10:41.760156 write(8</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trm>, "M/Q7cgahGy2~G1P1\n", 17) = 17 <0.000015>
4012 10:10:41.760207 write(7</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc>, "\n", 1) = 1 <0.000015>
4012 10:10:41.760259 write(7</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc>, "Build label: RDBMS_21.3.0.0.0"..., 49) = 49 <0.000015>
4012 10:10:41.760309 write(7</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc>, "\n", 1) = 1 <0.000015>
4012 10:10:41.760366 access("/home/oracle/sqllaji/ORACLE_HOME: /u01/app/oracle/product/21.0.0/dbhome_1\n", F_OK) = -1 ENOENT (No such file or directory) <0.001296>
4012 10:10:41.761711 access("/home/oracle/sqllaji/tpt/ORACLE_HOME: /u01/app/oracle/product/21.0.0/dbhome_1\n", F_OK) = -1 ENOENT (No such file or directory) <0.000020>
4012 10:10:41.761781 lseek(7</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc>, 0, SEEK_CUR) = 220 <0.000012>
4012 10:10:41.761923 write(7</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc>, "ORACLE_HOME: /u01/app/oracle/"..., 56) = 56 <0.000070>
4012 10:10:41.762052 write(8</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trm>, "3?xI~pu\n", 8) = 8 <0.000019>
4012 10:10:41.762124 lseek(7</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc>, 0, SEEK_CUR) = 276 <0.000012>
4012 10:10:41.762171 write(7</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc>, "System name:\tLinux\n", 19) = 19 <0.000017>
4012 10:10:41.762234 write(8</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trm>, "3?AI~0J\n", 8) = 8 <0.000015>
4012 10:10:41.762290 write(7</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc>, "Node name:\tcenttest\n", 20) = 20 <0.000016>
4012 10:10:41.762345 write(7</u01/app/oracle/diag/rdbms/book/book/trace/book_dia0_4012_base_1.trc>, "Release:\t3.10.0-514.el7.x86_64\n", 31) = 31 <0.000015>
3.dia0后台进程的作用:
--//打开内容,可以发现如下:
*** 2026-03-28T11:05:38.328688+08:00 (CDB$ROOT(1))
HM: Tracing moved from base trace file: book_dia0_4012_base_1.trc
*** 2026-03-28T11:05:38.329118+08:00 (CDB$ROOT(1))
HM: This is a single non-RAC instance. Hang detection is enabled.
HM: Hang resolution scope is INSTANCE.
HM: Cross Boundary hang detection is enabled.
HM: Cross Cluster hang detection is enabled.
HM: Early Warning trigger time is 32 seconds.
HM: Maximum session hang time (non-QoS) is 96 seconds.
HM: Verification interval is 46 seconds.
HM: Normal minimum resolution time is 142 seconds.
HM: Normal ignore interval is 300 seconds.
HM: PDB Abort interval is 60 seconds.
HM: Deadlock resolution is enabled.
HM: Application related hang resolution is disabled.
HM: Session/Hang fast-tracking is enabled. Threshold is 20%.
HM: Progressing Session/Hang fast-tracking is disabled.
HM: Singleton hang detection is disabled
HM: Singleton hang resolution is disabled
HM: CPU load is not being monitored.
HM: IO load is NOT abnormally high - 0% outliers.
HM: NETWORK load is not being monitored.
HM: MEMORY load is not being monitored.
HM: Tracing is now being performed to this file.
2026-03-28 11:05:38.329 :kjzdshn(): Shutting down DIAG
--//很明显用来诊断hang manager管理,可以理解hm有双重含义,指health monitor,hang manager。
--//可以简单模拟一个阻塞的情况,就会建立如下文件:
$ ll *4012*.trc
-rw-r-----. 1 oracle oinstall 19754 2026-03-28 11:05:38 book_dia0_4012_base_1.trc
-rw-r-----. 1 oracle oinstall 3294 2026-03-28 10:37:12 book_dia0_4012_lws_1.trc
-rw-r-----. 1 oracle oinstall 2306 2026-03-28 11:05:38 book_dia0_4012.trc
-rw-r-----. 1 oracle oinstall 9767 2026-03-28 10:39:08 book_dia0_4012_vfy_1.trc
--//对于事后诊断提供必要的帮助。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-3114834/ ,如需转载,请注明出处,否则将追究法律责任。