ITPub博客

首页 > 数据库 > Oracle > oracle awr快照点不记录问题

oracle awr快照点不记录问题

原创 Oracle 作者:wanglinghua0907 时间:2023-12-26 18:17:08 0 删除 编辑

alert日志里发现

Suspending MMON slave action kermrfsa_ for 82800 seconds

mmon的trc

KEWRAFC: Flush slave failed, AWR Enqueue Timeout



手动建快照点

exec dbms_workload_repository.create_snapshot;


等待为

reliable message



reliable message的方法

在 v$event_name 视图中,我们可以找到该事件的三个参数的含义,三个参数分别代表 channel context ,

channel handle ,broadcast message,获得这三个参数,就能够做出一定的判断:


SQL> select name,parameter1,parameter2,parameter3 

from v$event_name where name='reliable message';

NAME   PARAMETER1 PARAMETER2 PARAMETER3

----------------- --------------------- ----------------------- ------------------

reliable message  channel context       channel handle          broadcast message


例如:在出现等待时,通过以下查询,获得 reliable message 的 P1 参数:


select to_char(p1, 'XXXXXXXXXXXXXXXX') event_param,

 count(*), sum(time_waited/1000000) time_waited

from gv$active_session_history

where event = 'reliable message'

group by to_char(p1, 'XXXXXXXXXXXXXXXX')

order by time_waited desc;


EVENT_PARAM                                           COUNT(*) TIME_WAITED

--------------------------------------------------- ---------- -----------

       3CCF8A1D8                                          572  904.548231

       3CCF96200                                          109   69.145101

       3CCF9AFF0                                           54   23.987554


通过 x$ksrcdes 可以找到 P1 参数代表的通道信息:


select name_ksrcdes

from x$ksrcdes

where indx = (select name_ksrcctx from x$ksrcctx where addr like '%&addr%');

SQL> /

Enter value for addr: 3CCF8A1D8

NAME_KSRCDES

---------------------------------------------------------------------------

RBR channel


进一步的通过 GV$CHANNEL_WAITS 可以查看数据库的各种类等待。


SELECT CHANNEL,

  SUM(wait_count) sum_wait_count

FROM GV$CHANNEL_WAITS

GROUP BY CHANNEL

ORDER BY SUM(wait_count) DESC;


CHANNEL                                                            SUM_WAIT_COUNT

---------------------------------------------------------------- ----------------

Result Cache: Channel                                                   429264591



这个问题是结果集缓存的Bug导致的,Bug号为19557279,该问题在Oracle 12.2版本中修复 。参考:

Very High Waits for ‘reliable message’ After Upgrade to 11.2.0.4 When Using Result Cache (Doc ID 1951729.1)


如果未使用结果集缓存特性,可以通过临时关闭来解决:

SQL> alter system set result_cache_max_size=0;

 

System altered.


最终发现

MMON remote action broadcast channel


kill掉mmon进程


启停限制会话(会造成业务连不进来一下)

ALTER SYSTEM enable restricted session;

ALTER SYSTEM disable restricted session;


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69980685/viewspace-3001684/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: linux 修改swap空间
请登录后发表评论 登录
全部评论
Oracle ACE、sql server、oceanbase数据库专家,拥有7年以上的大型数据库运维经验,主方向oracle,擅长故障排除、诊断,大体量(TB)迁移,异常故障修复等。拥有丰富主导大型项目经验。服务行业包括:运营商、银行、金融业、政府单位、医疗、制造业、高校等等。

注册时间:2020-07-31

  • 博文量
    116
  • 访问量
    88785