11g RAC R2 体系结构---Grid
基于agent的管理方式
从oracle 11.2开始出现了多用户的概念,oracle开始使用一组多线程的daemon来同时支持多个用户的使用、管理资源,这些daemon叫做Agent。这些Agent都是些常驻内存的进程.
Agent的分类
- oracle grid 11.2的agent有多个,其中两个最重要的是oracle agnet和oracle root agent。
- oracle agnet 是以oracle用户身份运行(这个oracle用户是泛指,根据场合不同可能是grid,也可能是oracle)
- oracle root agent是以root用户身份运行 这个两个agent对应的操作系统的进程的名字是:oraagent和orarootagent
- OHAS栈会启动一套oracle agnet和oracle root agent。由OHAS启动的oracle agnet是用Grid的安装用户身份运行的。
- CRS栈也会启动一套oracle agnet和oracle root agent。如果安装Grid的用户不是oracle,而是grid。则会启动两个oracle agnet。
Agent和资源的关系图
相应的日志结构(按树状图的层次)
第一层
- OHASD 日志位于:$Grid_home/log/<hostname>/ohasd/ohasd.log
第二层:(OHASD的agent)
- cssdagent 日志位于: $Grid_home/log/<hostname>/agent/ohast/oracssdagent_root/oracssdagent_root.log
- cssdmonitor 日志位于: $Grid_home/log/<hostname>/agent/ohast/oracssdmonitor_root/oracssdmonitor_root.log
- orarootagent 日志位于: $Grid_home/log/<hostname>/agent/ohast/orarootagent_root/orarootagent_root.log
- oraagent 日志位于: $Grid_home/log/<hostname>/agent/ohast/oraagent_grid/oraagent_grid.log
第三层(资源)
- CSSD 日志位于: $Grid_home/log/<hostname>/cssd/ocssd.log
- CRSD 日志位于: $Grid_home/log/<hostname>/CRSD/CRSD.log
- ctssd 日志位于:$Grid_home/log/<hostname>/ctssd/octssd.log
- diskmon 日志位于:$Grid_home/log/<hostname>/ctssd/diskmon.log
OHASD的oraagent所管理资源的相应日志:
- ora.evmd日志位于:$Grid_home/log/<hostname>/evmd/evmd.log
- ora.mdnsd日志位于:$Grid_home/log/<hostname>/mdnsd/mdnsd.log
- ora.gpnpd日志位于:$Grid_home/log/<hostname>/gpnpd/gpnpd.log
- ora.gipcd 日志位于:$Grid_home/log/<hostname>/gipcd/gipcd.log
第四层(CRSD的agent)
- orarootagent 日志位于: $Grid_home/log/<hostname>/agent/crsd/orarootagent_root/orarootagent_root.log
- oraagent(grid)日志位于:$Grid_home/log/<hostname>/agent/crsd/oraagent_grid/oraagent_grid.log
- oraagent(oracle)日志位于:$Grid_home/log/<hostname>/agent/crsd/oraagent_oracle/oraagent_oracle.log
Grid的启动顺序及作用
Grid的启动可分为4个级别。
级别1:OHASD的活动。
这个阶段,OHASD要启动4个agent,分别是ORAAGENT、ORAROOTAGENT、CSSDAGENT、CSSDMONITOR
- CSSDAGENT:这个agent以root身份运行,负责启动CSSD,对应的进程名cssdagent
- ORAROOTAGENT:这个agent以root身份运行,负责管理所有属于root用户的OHASD资源,对应的进程名orarootagent
- CSSDMONIOTOR: 这个agent以root身份运行,和CSSDAGENT一起负责监控CSSD以及节点的健康状况,对应的进程名cssdmonitor
- ORAAGENT: 这个agent以gird身份运行,负责管理所有属于grid用户的OHASD资源,对应的进程oraagent
级别2:ROOTAGENT的活动
由OHASD启动的orarootagent要启动以下几个进程
- CRSD:以root身份运行,对应进程crsd
- CTSSD:Grid自己的时间同步服务,以root身份运行,对应的进程octssd
- Diskmon:在非Exadata机器上是无效进程
- ACFS:ASM集群文件系统的驱动,以root身份运行
级别2:ORAAGENT的活动
由OHASD启动的oraagent进程要负责下面的进程和服务,这些服务都是以grid身份运行
- ASM: ASM实例,用于挂载磁盘组
- EVMD:负责订阅集群环境中事件的生成和发布。对应的进程名evmd
- MDNSD:取决于是否使用GNS服务,对应的进程mdnsd
- GIPCD:用于进程间和节点间的通信协议,进程名字GIPCD GPnPD:负责集群节点间GPnP profile的同步,这个文件保存在每个节点的本地目录:$GRID_HOME/gpnp/profile/profile.xml
- GPnPD:对应的进程名字是gpnpd.bin
级别3:CRSD的活动
CRSD会启动oraagent和orarootagent。
- ORAROOTAGENT:这个agent以root身份运行。
- ORAAGENT:这个agent会有两个,分别负责管理以grid、oracle身份运行的
级别4:ORAROOTAGENT的活动
- Network Resource:对应public NETWORK
- SCAN VIP: 由SCAN VIP 和 SCAN Listener的配对组成
- Node VIP:是Public NIC上的VIP地址,每个节点都需要一个vip
SCAN VIP和Node VIP类似,都是浮动地址。不同的是,Node VIP在数量上等于几点的个数,每个节点一个。而SCAN VIP和节点 数量没关系,和集群规模没关系,固定就是3个(在试验环境中可以不用DNS,而是用/etc/hosts来解析scan域名,这时scan vip 可以只要一个,但仅限于实验环境,生产环境不要这么做)。 ACFS Registry:用户挂在ACFS文件系统 GNS VIP(可选):GNS的VIP
级别4:ORAAGENT 的活动(grid用户)
以grid身份运行的oraagent会启动以下这些资源
- ASM资源:ASM 实例
- Diskgroup:管理和监视ASM磁盘组
- SCAN Listener:监听SCAN VIP的监听器
- Listener:监听节点VIP的监听器
- ONS:oracle事件通知服务
- eONS:增强版的ONS
- GSD:向后兼容9i的服务
- GSN(可选):代替DNS处理名字解析
级别4:ORAAGENT 的活动(oracle用户)
- DB:管理和监视DB和实例
- Service:管理和监视service
------整理自《大话oracle Grid》