暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

Oracle 19.11 DBW0进程产生巨大的trace文件导致目录爆满

原创 lu9up的数据库笔记 2025-02-14
289

1 说明

2025-02-12凌晨时间03:31:28,某个库的主机出现/oracle的文件系统使用率爆满,清理了异常占用的trace文件后告警消除。

image.png

此问题是由于Bug 33123985 DBW0 Process Generate Huge Traces With Dumping DBWR Process State After DBRU 19.11引起,在19.11以后的版本,DBW0进程会产生大量trace以及dump。

2 处理和分析过程

2.1 应急处理

经排查,发现是数据库实例dbw进程有几个trace文件突增占满文件系统,当时的应急处理办法是将其中4个较大(30G)的trace文件重定向:

image.png

2.1 查找根因

随后检查了集群服务状态正常,实例没有自动重启过。查看告警日志,在空间满时有dbw进程相关告警如下:

image.png

可以看到,告警日志显示有6个trc文件无法写入,上面清理的4个就是其中之一,无法写入的原因显而易见就是因为/oracle目录满了。除了上面清理的那几个trc文件,剩下的3个文件也很大,每个都是好几G。

除上述告警外,alert日志没有其他明显报错,系统messages日志也无明显异常。

查看其中一个trace文件,发现文件末尾存在大量以下内容:

image.png

此错误是由于Bug 33123985 DBW0 Process Generate Huge Traces With Dumping DBWR Process State After DBRU 19.11
引起:

image.png

3 解决办法

3.1 打补丁

打补丁Patch 33123985: DBW PROCESS GENERATE HUGE TRACES WITH DUMPING DBWR PROCESS STATE AFTER DBRU 19.11

image.png

3.2 版本升级

19.13及以后版本包含Patch 33123985,可以将库升级到19.13。

3.3 修改参数

禁用 DBWR 的写入停滞检测功能:

alter system set "_dbwr_stall_write_detection_interval" = 0 scope=both sid='*';

当这个参数的值为 0 时,数据库不会定期去检查 DBWR 是否存在写入延迟的情况,这可能会导致数据库在高负载或 I/O 瓶颈时无法及时检测到写入停滞,进而影响性能或稳定性。

不建议在生产环境中随意修改,需要经过全局考虑。禁用了此参数虽然规避了当前问题,但是有可能导致不可预见的后果。

4 总结

在19.11版本中,dbw进程产生占用大的trace文件是由于Bug 33123985引起的,可通过打Patch 33123985补丁、升级到19.13或禁用DBWR进程的写入停滞检测功能去规避此问题。

最后修改时间:2025-02-18 09:07:32
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论