oracle之 11g RAC R2 体系结构---Grid

时间:2023-11-28 20:20:26

-- 查看cluster 所维护的资源列表,不包括 OHAS 栈的 daemon

[root@node1 bin]# ./crsctl status resource -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
ONLINE ONLINE node1
ora.FLASH.dg
ONLINE ONLINE node1
ora.GRIDDG.dg
ONLINE ONLINE node1
ora.LISTENER.lsnr
ONLINE ONLINE node1
ora.asm
ONLINE ONLINE node1 Started
ora.gsd
OFFLINE OFFLINE node1
ora.net1.network
ONLINE ONLINE node1
ora.ons
ONLINE ONLINE node1
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE node1
ora.cvu
1 ONLINE ONLINE node1
ora.devdb.db
1 ONLINE ONLINE node1 Open
ora.node1.vip
1 ONLINE ONLINE node1
ora.oc4j
1 ONLINE ONLINE node1
ora.scan1.vip
1 ONLINE ONLINE node1

-- 查看 OHAS 栈的 daemon

[root@node1 bin]# ./crsctl stat res -t -init
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.asm
1 ONLINE ONLINE node1 Started
ora.cluster_interconnect.haip
1 ONLINE ONLINE node1
ora.crf
1 ONLINE ONLINE node1
ora.crsd
1 ONLINE ONLINE node1
ora.cssd
1 ONLINE ONLINE node1
ora.cssdmonitor
1 ONLINE ONLINE node1
ora.ctssd
1 ONLINE ONLINE node1 ACTIVE:0
ora.diskmon
1 OFFLINE OFFLINE
ora.evmd
1 ONLINE ONLINE node1
ora.gipcd
1 ONLINE ONLINE node1
ora.gpnpd
1 ONLINE ONLINE node1
ora.mdnsd
1 ONLINE ONLINE node1

基于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和资源的关系图

oracle之 11g RAC R2 体系结构---Grid

相应的日志结构(按树状图的层次)

第一层

  • 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》