在进行系统优化时,经常会遇到MMNL TRC文件巨大的问题。通过执行以下命令可以快速知道问题:
du -sm * | sort -rn | head
发现mmnl的trc文件50G,详情如下图所示:
原因分析
MMNL后台进程负责对活动会话历史记录(ASH)
进行采样,存储在循环 SGA 内存缓冲区中的信息将通过快照或紧急刷新刷新到 AWR。
如果循环缓冲区已满三分之二,则 ASH 紧急冲洗将启动。
如果由于某种原因无法将信息写入 AWR,则 ASH 会将其内容(如果未重新启动,则每 12 小时转储一次)到 MMNL 跟踪文件。
将信息写入跟踪而不是 AWR 的可能原因包括:
ASH缓冲区太小<===首先检查ASH缓冲区是否太小
MMON进程没有响应<====然后,检查MMON进程没有响应的原因
是否缓冲区太小?
select round(total_size/1024/1024) total_size_mb, AWR_FLUSH_EMERGENCY_COUNT from v$ash_info;
如果size较小,且count较多,说明需要调大
调大
sqlplus / as sysdba alter system set "_ash_size"=25165824; alter system set "_ash_size"=400m; --12c 可以超过 254Mb
确认
select total_size from v$ash_info;
现有的trc怎么办?
mmnl重启
在Oracle数据库中,MMNL(Manageability Monitor Lite)进程是用于捕捉性能统计信息的后台进程它与MMON(Manageability Monitor)进程共同工作,处理各种管理任务,如AWR(AutomaticWorkload Repository)数据收集等。通常,这些进程都是出Oracle数据库自动管理的,不需要手动干预。
如果出于某种原因需要重启MMNL进程(这是非常罕见的),那么最直接的方法是重启数据库。这是因为MMNL是一个Oracle数据库的内部进程,没有提供直接的方法来只重启该进程而不影响其他数据库服务。请注意,重启数据库会影响所有当前的数据库连接和业务操作,因此应小心谨慎地进行,并在维护窗口内执行。
作为一种解决方法,请通过以下方法重新启动MMON进程:
重新启动数据库实例
将实例设置为“受限会话”模式,然后使用以下命令作为SYSDBA将其恢复到正常模式:
alter system enable restricted session; alter system disable restricted session;
后台日志
其他解决方案
解决MMNL TRC文件巨大问题的方法
在进行系统优化时,经常会面临MMNL TRC文件巨大的问题。通过执行以下命令可以快速定位问题:
du -sm * | sort -rn | head
如果发现MMNL的TRC文件占据了大量空间,可能需要查看其内容,寻找解决方法。
原因分析
一个可能的原因是系统缓冲区设置过小。您可以通过以下SQL语句检查并调整ASH参数:
select round(total_size/1024/1024) total_size_mb, AWR_FLUSH_EMERGENCY_COUNT from v$ash_info;
如果`total_size`较小而`AWR_FLUSH_EMERGENCY_COUNT`较多,说明需要增加缓冲区大小。您可以通过以下步骤进行调整:
1. 进入SQLPlus:
sqlplus / as sysdba
2. 调整系统参数:
alter system set "_ash_size"=25165824; alter system set "_ash_size"=400m; -- 对于12c版本,允许超过254Mb
3. 确认更改是否生效:
select total_size from v$ash_info;
现有TRC文件处理
若需处理当前存在的大型TRC文件,可以尝试重启MMNL服务。文章来源:https://www.toymoban.com/diary/problem/731.html
关键词: MMNL TRC文件、TRC文件过大、AWR_FLUSH_EMERGENCY_COUNT、ASH参数调整、后台日志分析文章来源地址https://www.toymoban.com/diary/problem/731.html
到此这篇关于如何处理大小巨大的MMNL TRC文件?解决方法一览的文章就介绍到这了,更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!