读书频道 > 数据库 > Oracle > Oracle Exadata技术详解
3.2.4 Diskmon进程
2015-11-03 15:01:05     我来说两句 
收藏    我要投稿   

本文所属图书 > Oracle Exadata技术详解

本书作为国内第一本关于Oracle Exadata一体机的中文教程,偏重于实践方面,同时加入了更多V2版本以后的新内容。全书可分为三个部分。第一部分为基础篇(1~5章),主要介绍了Oracle Exadata一体机的配置、架构  立即去当当网订购

Diskmon是Exadata上非常重要的一个基础进程,从名字上来看,虽然它可能负责对存储的磁盘进行监控,而实际上其主要职责是负责监控Exadata存储服务器进程和存储网络,保障存储节点能够正常访问。如果存储服务器无法正常访问,CRS会向diskmon发出一个I/O fencing的请求,diskmon接收以后会将其投递到存储服务器的一端。此外,diskmon进程的另外一个功能是将IORM plan推送到存储服务器一端。

Diskmon进程位于数据库服务器一端,属于Oracle CRS的一部分。通过对orarootagent文件进行分析,可以发现Diskmon是通过GI的orarootagent调用的。

[root@dm01db01 init.d]# strings
/u01/app/11.2.0/grid/bin/orarootagent.bin|grep diskmon
ora.diskmon.type
diskmon
diskmon
/valgrind_diskmon
diskmon -d -f
diskmon
DiskmonAgent::DiskmonAgent diskmon is enabled
DiskmonAgent::DiskmonAgent diskmon is disabled
DiskmonAgent:: diskmon shutting down cleanly %d
DiskmonAgent:: Unable to reboot..clean ora.diskmon...
DiskmonAgent::check: diskmon OS pid unknown %u
DiskmonAgent::check: diskmon OS pid %u

在非Exadata的Oracle集群环境下,并没有使用到这个进程。例如在Linux平台Oracle 11.2.0.3以前,这个进程虽是启动的,但是没有完成任何实质性工作,在Oracle 11.2.0.3以后,这个资源默认就是off?line的,不同平台、不同版本可能会存在差异,但可以通过查看init.cssd脚本了解到详细的情况,如下所示:

/* default for all platform is:
 USING_DISKMON='false' #
case $PLATFORM in
Linux)
….
 USING_DISKMON='true'
HP-UX)
MACH_HARDWARE=`/bin/uname -m`
…
USING_DISKMON='true'

在Exadata上,每台数据库服务器上都存在1个主(master)diskmon进程(名称为diskmon.bin),而每个数据库实例都存在1个从(slave)diskmon进程(名称为ora_dskm_sid),主进程监视并将状态信息推送给从进程。从进程使用 SGA 与 RDBMS或者ASM 进程进行通信。

diskmon进程的日志位于$CRS_HOME/log/hostname/diskmon目录。但是diskmon的日志文件通常对诊断问题帮助不大,只有在极为特殊的情况下,Oracle的support才会要求提供diskmon的信息。

diskmon监控Exadata存储服务器进程和存储网络的过程过于复杂,绝大多数已经超出了本书的讨论范围,在这里不做详细讨论。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:3.2.3 Management Server进程
下一篇:3.3 智慧的协议:iDB
相关文章
图文推荐
3.6 存储管理工具Ce
3.4.5 Interleaving
3.4 Exadata存储架构
3.3.3 SDP协议
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站