DB2 MON_GET_*监视表函数访问 mon metric 的机制?

孔老师,DB2 使用实例共享内存监视堆 mon heap存放 DB2实例、数据库、应用连接等各个层次的监视指标供各种监视接口访问。

1、“MON_GET”监视表函数作为轻量级、in-memory metrics访问接口是否可以向 db2pd那样无需任何资源锁直接 attach 到 mon heap共享内存上,访问所需要的监视数据?还是采取了其他机制?

2、mon heap 监视堆是否会像 Oracle ASH buffers 那样由于设置太小,导致 mon heap被写满后不久前的数据被覆盖重写上新的监视数据?
如果存在这种情况,被监控的系统的 mon heap 大小设置多大才合理呢?

以下是 Oracle做类似处理时的机制:

1、V$SESSION 是监控内存中 数据库活动 的记录,是 ASH 的数据起源;
2、V$SESSION_WAIT 将当前会话中正在等待的会话状态复制一份到该视图,断开后消失(等待会话生命周期最后1次等待,一个session对应一条记录);
3、V$SESSION_WAIT_HISTORY 是对 V$SESSION_WAIT 的简单增强,记录活动 SESSION 的最近10次等待;
4、V$ACTIVE_SESSION_HISTORY 是 ASH 的核心,ASH 每秒从 v$session_wait 中采样一次(等待会话每秒的快照) ,保存到 ASH buffers 的此视图中,用以记录活动 session 的历史等待信息,期望值是记录一个小时的数据;
5、WRH$ ACTIVE_SESSION_HISTORY 是 V$ACTIVE_SESSION_HISTORY 在 AWR 中的存储位置,V$ACTIVE_SESSION_HISTORY中记录的信息会被定期(每小时一次)的刷新到 AWR负载库中,并缺省保留 7天用于分析。
6、DBA_HIST_ACTIVE_SESS_HISTORY视图是WRH$_ACTIVE_SESSION_HISTORY 视图和其他几个视图的联合展现,通常通过这个视图进行历史数据的访问。

下面是 Oracle AWR的机制:

ASH 与 AWR 的关系
ASH 以 v$session 为基础,每秒钟从 v$session_wait 采样一次,记录活动会话等待的事件。ASH采样的等待会话信息被滚动写入 SGA 中的 ASH buffers,在需要时早期的信息是会被覆盖的。ASH记录的信息可以通过v$active_session_history视图来访问,对于每个活动session,每次采样会在这个视图中记录一行信息。
AWR 的采样工作由后台进程 MMON 每60分钟执行一次,ASH信息会被采样写出到 AWR 负载库。当 ASH buffers 写满之后,另外一个后台进程 MMNL 将会主动将 ASH 信息写出。由于数据量巨大,把所有的 ASH 数据写到磁盘上是不可接受的。一般是在写到磁盘的时候过滤这个数据,写出的数据占采样数据的10%,写出时通过direct-path insert完成,尽量减少日志生成,从而最小化数据库性能影响。

参与7

1同行回答

anikikonganikikong课题专家组数据库运维工程师中国民生银行
你这个问题太专业了,尤其是将oracle的awr和ash等讲的特别细致。我之前一直没有遇到过mon heap不够的情况。因为db2不存历史,所以监视元素量是可以看做固定的,因此不需要多大的空间来存放。我们在监控package cache的时候遇到SQL数量太多导致mon语句返回慢,但是也不会丢失信息...显示全部

你这个问题太专业了,尤其是将oracle的awr和ash等讲的特别细致。我之前一直没有遇到过mon heap不够的情况。因为db2不存历史,所以监视元素量是可以看做固定的,因此不需要多大的空间来存放。我们在监控package cache的时候遇到SQL数量太多导致mon语句返回慢,但是也不会丢失信息。因为这个信息是放在package cache里的。反倒是package cache太小会导致有些SQL累加信息会被挤掉,这个和mon heap也没关系。mon get表函数其实不能算轻量级,db2pd才是真正轻量级工具。

收起
银行 · 2019-12-19
浏览2083
atpeace331 邀答
  • package cache这块我还真没注意,DB2 11.1 和 DB2 11.5对 package cache内部的监控加强了,但是信息中心对里边的内部机制没专门提,只能找资料看了。db2pd 倒是把瑞士军刀,您那边运维脚本用的应该很多吧?
    2019-12-20
  • 其实运维脚本不多,20来个吧,都是些日常监控和应急的脚本。现在基本操作都通过自动化调用脚本来实现,减少登录系统的需求。
    2019-12-20

提问者

atpeace331
数据库管理员银行

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2019-12-19
  • 关注会员:2 人
  • 问题浏览:3996
  • 最近回答:2019-12-19
  • X社区推广