【Oracle-RAC】CRSD的功能-11gr2

1.资源和代理进程的关系 

代理进程:资源拥有者:资源名称 
oraagent_grid:grid:ora.gsd 
oraagent_grid:grid:ora.LISTENER.lsnr
oraagent_grid:grid:ora.asm 
oraagent_grid:grid:ora.ons 
oraagent_grid:grid:ora.oc4j 
oraagent_grid:grid:ora.SCAN_LISTENER.lsnr 
oraagent_grid:grid:ora.DATA.dg 

oraagent_oracle:oracle:ora.orcldb.db 
oraagent_oracle:oracle:ora.orcldb.orcl.srv 

scriptagent:grid:ora.cvu 
orarootagent_root:root:ora.registry.acfs 
orarootagent_root:root:ora.scan1.vip 
orarootagent_root:root:ora.test1.vip 
orarootagent_root:root:ora.gns 
orarootagent_root:root:ora.gns.vip 
orarootagent_root:root:ora.net1.network 

2.资源管理框架的基本概念

EP:Entry Point:它非常类似于10gR2版本中的CRSD 对应资源的动作,
用于指定agent 可对这个资源执行哪些操作、动作。支持的EP有:
Start:启动资源  
Stop:停止资源 
Check:检查资源的状态,如果发现资源状态改变,agent则会通知GI资源 
状态发生了改变。
Clean:清理资源,一般来说清理资源会在资源存在问题而需要重新启动或
failover之前发生。
Abort:终止资源。

状态:当资源进入某一个EP之后,一定会返回一个状态,支持的状态有:
ONLINE:在线。 
OFFLINE:离线。即使资源被离线,GI仍然会探测这个资源的状态,以便在资源 
恢复正常时能够自动将资源重新上线。
UNKOWN:未知,对应资源的unkown 状态,这种状态下,agent会继续对该资源进行检查。
PARTIAL:部分在线,对应资源的 intermediate 状态。这种状态下 agent会继续对该 
资源进行检查,并及时更新资源状态。
FAILED:失败,返回值说明资源存在问题,不能正常工作。之后会进行failover 或者restart;
INTERMEDIATE:资源正处于一个状态到另一个状态之间的中间状态。这说明agent 
目前还不知道这个资源的状态。

agent:代理进程:agent 只能被 ohasd 或者CRSD 启动。其中ohasd启动agent 负责管理集群 
的初始化资源;CRSD启动的agent负责管理集群的应用程序资源。ohasd 和CRSD 根据 
集群的不同会启动不同的agent,有些agent是root用户启动的,有些是grid用户启动的,
还有些是由Oracle用户启动的。

PE(Policy Engine):由于CRSD 是一个分布式的集群组件,也就是说集群中的每一个节点
都会运行该组件,而且它们要对一些共享的资源进行管理,所以在对资源进行管理的时 
需要一种协调机制以保证操作能够顺利执行。Oracle采用的的主从模式,或者master-slave 
模式。集群中第一个节点被选择为PE的主节点。集群中所有对资源的操作都会先被发送给 
PE主节点的CRSD守护进程。再由这个主节点统一发送给需要执行相关操作的节点的agent;

3.CRSD的模块

CRSD 是由多个模块构成的:
PE模块:主要负责制定CRSD的策略决定。
agent模块:负责和代理进程(agent)进行通信并完成对具体资源的操作。
UI(User Interface)模块:负责响应客户端发送的请求,并和底层的PE模块,agent 模块通信。 
OCR模块:当操作需要多OCR进行操作时,该模块负责完成对OCR的操作。
通告模块:由于有些操作会导致资源状态的变化,这个模块负责向外发布资源的变化信息,
其他的集群组件(如EVMD)需要接收这些通告。 
通信模块:负责节点间CRSD通信。 

--查看CRSD模块列表 
su - root 
crsctl lsmodules crs 

资源类型:
由于CRSD需要管理很多的资源,所以它把资源分成了很多类型,每一种类型的资源 
都会有一些共同的资源属性。比较常见的资源类型有:
ora.diskgrou.type :磁盘组相关的资源 
ora.listener.type: 监听程序相关的资源 
ora.asm.type: ASM 实例相关的资源。 
ora.database.type: 数据库相关的资源。 

资源属性: 
每个资源都会有相关属性被定义,agent在对资源进行操作时需要具体的资源属性
以决定对资源执行哪些具体的操作。资源属性可以分为只读属性,资源特定的属性,
可修改属性。

资源依赖关系: 
依赖关系,就是资源和资源之间的彼此依赖关系。10g版本,资源依赖关系主要靠资源属性 
REQUIRED_RESOURCES 类决定。11gr2 版本的集群上,Oracle对资源依赖关系做了非常 
详细的区分,它会以资源属性 START_DEPENDENCIES 和 STOP_DENPENDENCIES 的形式存在。
也就是存在两种依赖关系:启动依赖关系,停止依赖关系。

--检查数据库资源和其他资源的依赖关系。
su - root 
crsctl stat res ora.orcldb.db -p 

4.CRSD的运行方式 

客户端-->UI模块-->PE模块-->PE模块主节点-->远程AGENT模块-->结果返回给PE模块主节点。
-->返回给请求的UI模块-->返回客户端。

(1)在请求节点的客户端发出请求,例如一个:crsctl 命令 。
(2)请求节点CRSD的UI模块收到对应的请求,并将请求发送给本地节点的CRSD的PE模块。
(3)本地节点的PE模块在分析了请求所需要执行的操作之后,将该请求发送给PE主节点的PE模块 
(4)PE主节点上的PE模块在分析了收到的请求后,将需要执行的操作发送给目标节点的agent模块。
(5)目标节点的agent模块通知本地节点上对应的agent进程对资源进行操作。
(6)目标节点的agent模块完成了对资源的操作,并通知本地节点的agent模块。
(7)目标节点的agent模块将结果返回给PE主节点的PE模块。
(8)PE主节点的PE模块将返回结果发送给请求节点的PE模块。
(9)请求节点的PE模块将命令的返回结果发送给本地节点的UI模块。
(10)请求节点的UI模块将请求结果发送给对应的客户端。

--停止监听的命令 
srvctl stop listener -n rac2 -l LISTENER  

5.CRSD管理的新资源 

CRSD管理的资源分为两种:本地资源,集群资源。 
本地资源:
是指该资源只能在本地节点商行运行,不能转移到集群的其他节点上运行。
本地资源包括:network 资源,GSD 资源,监听程序资源,ONS 资源, 
ASM 代理资源和磁盘组资源。

集群资源: 
是指该资源会选择在集群的某一个或多个节点上运行,当某个节点出现问题时,
资源可以切换到集群中的其他节点上继续运行。集群资源包括:VIP资源, 
SCAN VIP 资源,GNS 资源,数据库资源和数据库服务资源。

(1)网络资源 
--查看网络资源的属性 
su - grid  
crsctl stat res ora.net1.network -p  

由于这个资源管理着集群的公网,很多资源都需要依赖于这个资源,例如 VIP资源,
SCAN VIP资源,监听程序资源,CVU 资源,数据库服务资源。一旦这个资源出现了问题, 
依赖于这个资源的其他资源都会被离线。 
(2)VIP资源 
节点VIP资源 
SCAN VIP资源 
GNS VIP 资源。 

GNS 实际上可以认为是Oracle推出的DNS,在大型网络当中,如果DHCP 被使用, 
GNS可以作为DNS 定义的域(Domain)的一个子域存在,为GI张红的VIP,
SCAN VIP 和节点公网IP提供域名解析服务,使得GI不再需要固定的IP地址。
而是从DHCP租用地址。如果需要使用GNS的话,就需要一个GNS VIP地址来定义
所在的子域位置。

应用VIP资源:用户可以根据自己的需要自定义VIP地址。

(3)监听程序资源 
有两种类型的监听程序资源,分别是 SCAN 监听程序和节点监听程序。
SCAN监听程序:SCAN 监听程序需要和SCAN VIP成对出现,负责接受从SCAN VIP 
到数据库的连接。SCAN VIP 和对应的 SCAN监听程序需要运行在相同的节点上,
当SCAN VIP 切换到其他节点上之后,SCAN 监听程序也会随之切换。
每个SCAN 监听程序只负责监听对应的SCAN VIP的IP地址。不会监听其他的IP地址。


节点监听程序 
节点的监听程序实际上和10gr2版本的监听程序基本上是相同的,负责接收通过节点 
VIP或者公网IP到数据库的连接。 
(4)ONS 资源 
ONS 资源负责监控Oracle Notification Service 的状态,ONS 对应的配置文件位于 
{GI_HOME}/opmn/config/ons.config.test1 .

(5)GSD资源 
GSD 资源的作用是为了向后兼容9i版本的数据库资源,这个资源默认处于离线状态。
如果集群中存在运行9i版本的数据库与软件,那么这个资源需要上线,否则 
这个资源对集群没有任何作用,应该保持离线。
(6)GNS 资源 
GNS 资源负责为集群提供域名解析服务,它的功能是配合DHCP为集群的公网,
VIP,SCAN VIP 提供域名解析服务。GNS除了在12C版本集群的Flex Cluster 
中需要使用外,在其他实际应用中很少使用。
(7)ASM代理资源 
由CRSD管理的ASM资源(ora.asm)实际上是OHASD管理的ASM资源的一个代理资源。
而OHASD管理的ASM资源才是真正负责管理集群的ASM实例。
CRSD管理的ASM资源只会显示真正的ASM实例的状态。

(8)磁盘组资源 
磁盘组资源:
ora.DATA.dg 
负责管理对应的ASM磁盘组,该资源在磁盘组被挂载后会自动上线,并开始 
监控磁盘组的状态。如果某一个使用了磁盘组的数据库被打开后,
CRSD会自动设置数据库资源和磁盘组资源之间的依赖关系。

(9)数据库资源 
数据库资源 ora.orcldb.db 是11gr2版本集群中新增加的资源,它替代了原有的
10.2版本中的数据库实例资源和数据库资源。该资源负责管理集群中运行的数据库。

--查看数据库的资源属性。
crsctl stat res ora.orcldb.db -p  
(10)数据库服务资源 
ora.orcldb.orcl.svc 
在11gr2版本集群中,数据库服务资源变成了一个资源(.svc资源),之前版本中的
.cs/.srv 资源已经不再存在。

(11)CVU资源
从11.2.0.2开始,GI会定期(默认情况下每6个小时)运行 cluvfy 命令对集群的健康 
性进行检查。默认情况下,第一个加入集群的节点会运行ora.cvu资源,并定期对集群
进行健康性检查。需要说明的是,该资源只会对集群进行健康检查,并将查询到的
问题显示出来,但是不会对集群做任何修改。
crsctl stat res ora.cvu  -p  

(12)使用srvctl 命令 
--查看网络资源 
srvctl config network -k l 
--VIP资源 
srvctl config vip -n test1  
--SCAN VIP 资源 
srvctl config scan  
--Listener资源 
srvctl config listener -l LISTENER
--SCAN LISTENER 
srvctl config scan_listener 
--ASM资源 
srvctl config asm -a  
--磁盘组资源:
srvctl status diskgroup -g DATA1 
--数据库资源  
srvctl config database -d orcldb -a  
--数据库服务资源 
srvctl config service -d orcldb -s test -v  

(13)小结  
绝大部分的资源都是由root或者grid用户对应的代理进程来管理的,
只有数据库资源和数据库服务资源是由Oracle用户对应的代理进程管理的。
这样反应了一个集群的方向:数据库越来越像是GI管理的一个资源,
在集群中的地位也变得不那么重要了,ASM会变成集群的基础组件,
提供存储服务,卷管理器和文件系统服务,集群管理的资源越来越多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值