Oracle RAC技术随笔2

资源管理方式

1 . 10g

对于10r2版本,资源管理工作由CRS(Cluster Ready Service)管理,通过crsd守护进程来启动。
可以通过crs_stat-t -v 来查看管理的资源列表:

VIP 资源Cora. < 节点名>.vip)
ONS资源(ora. < 节点名>.ons)
GSD资源(ora. <节点名>.gsd)
ASM实例资游、(ora.. ASM< 节点编号>.asm)
监昕程序资源、Cora. < 节点名>.< 监听程序名>.lsnr)
数据库资惊Cora. < 数据库名>.db)
数据库实例资源(ora. < 数据库名> .< 实例名>. inst)
数据库服务资源( ora. < 数据库名〉.〈服务名>.cs和ora. < 数据库名> .< 服务名〉.< 实例名>.srv

动作(Action): 动作定义了CRSD对资源进行启动、停止、检查和清除操作时所需要运行的步骤, 它可以是一段shell脚本、一段应用程序、数据库命令等。
资源概要文件(profile) : 概要文件定义了资源的很多属性, 以便CRSD能够根据概要文件定义的属性来创建资源。例如:检查间隔、动作脚本等。
依赖关系( Dependency): 资源之间并不是独立的, 有些资源之间是存在互相依赖关系的。例如: 数据库实例启动的前提是ASM实例先要被启动, 这表示数据库实例资源需要依赖于ASM实例资源, 而这种依赖关系是通过资源属性REQUIRED_RESOURC ES来实现的。
权限:由于不同的资源需要执行的操作也是不同的, 这意味着执行操作的用户也会不同(主要是root和Oracle用户)所以, 每个资源都会针对不同的用户指定不同的权限。这也是为什么crsd.b in守护进程需要以root用户运行的原因之一。
OCR ( Oracle Cluster Register) : OCR实际上是包含了以上所有信息的一个注册表,CRSD通过访问OCR来获得集群资源的列表(当然,还包括其他很重要的信息) 以及每个资源的各个属性.
Oracle集群管理软件(CRS)还定义了一些racg模块, 不同的racg模块负责管理不同的资源, 例如:racgvip负责管理VIP, 这些模块负责定义对资源操作的动作第一点:CRSD通过OCR定义资源。当crsd.bin守护进程启动时, 通过读取OCR中的信息来获得资源定义。而当资源属性发生改变时,crsd.bin守护进程也会修改OCR中的信息。
第二点:CRSD通过调用racg模块来实现对资源的各种动作.
第三点:CRSD 守护进程被启动, 之后尝试联系 CRSD 守护进程, 但是由于 ocssd.bin 还没有完全被启动, 所以 CRSD 守护进程还不能继续向下运行。在 ocssd.bin 完全启动后, CRSD 才能继续启动
第四点:CRSD 通过读取ocr,发现存储设备和节点信息状态

2 . 11gr2

在11g,ohasd成了集群启动入口,其他所有进程都被定义为资源。ohasd负责集群所有资源,同时GI不在由racg来启动,由agent统一实现对所有的资源管理。当然OCR仍然被保留下来,用于保存crsd管理的资源。但是由于在启动crsd之前还需要启动一些资源如asm之类的,所以在11g r2添加了一项OLR(Oracle Local Register)。

OLR

顾名思义, OLR是保存在本地的集群注册表, 也就是说 OLR 是保存在每个节点本地的.OLR 的主要作用就是为 obasd 守护进程提供集群 的配置信息和初始化资源的定义信息。 当集群启动时 ohasd 会从/etc/oracle/olr.loc 文件(不同平台, 文件位置会不同) 中读取 OLR 的位置, OLR 默认保存在<gi home>/cdata 下, 文件名为<节点名>.olr。

jhdb01-> cat /etc/oracle/olr.loc
olrconfig_loc=/u01/app/11.2.0/grid/cdata/jhdb01.olr
crs_home=/u01/app/11.2.0/grid

可以使用ocrdump -local 把olr信息显示出来。
OLR不会自动备份,一般需要手动备份ocrconfig -local -manualbackup ,使用 ./ocrconfig -local -restore 来恢复,不能从其他节点复制过来使用,可以使用ocrcheck来检查,所有适用于ocr的命令同样适用于olr,只是加一个 -local 参数。

agent

oraagent:这个代理进程会以 Oracle或者grid用户启动,负责管理的用户为Oracle或
grid 的资源。
orarootagent:这个代理进程以 root用户启动,负责管理的用户为root 的资源。
cssdagent: 这个代理进程负责启动 ocssd.bin守护进程,之后负责监控ocssd.bin守护
进程。
cssdmoniot:这个代理进程和cssdagent 代理进程基本一样,但是它只负责监控ocssd.bin
守护进程。
代理进程可以由ohasd 和crsd守护进程启动,其他的集群守护进程不能启动代理进程。
其中,ohasd守护进程启动的代理进程负责管理集群的初始化资源和其他守护进程,而CRSD 守护进程启动的代理进程负责管理集群的其他资源(在这一点上与10g版本一致的)。
ohasd.bin守护进程会启动4个代理进程, 它们分别是oraagent_grid(如果集群管理软件和数据库软件都是使用Oracle 用户安装的,那么这个代理进程的名称就是oraagent_ oracle)、orarootagent_ root、cssdagent_root、cssdmonitor。 每个代理进程负责管理的资源可以参照下表。
这里写图片描述
1 .ora.gipcd、ora.gpnpd和ora.mdnsd会以守护进程的形式存在,它们负责完成集群在
bootstrap阶段的工作,在第4章将详细介绍。
2 . ora.ctssd会以守护进程的形式存在,它负责集群的时间管理,在第4章将详细介绍。
3 . ora.cssd和ora.cssdmonitor会以守护进程的形式存在,其中 ocssd.bin守护进程负责集群假设并维护一致性,而cssdmonitor负责监控ocssd.bin守护进程的状态。
4 . ora.crsd 会以crsd.bin守护进程形式存在,
5 . ora.evmd负责管理集群事件,会以evmd.bin形式存在
6 . ora.asm 这个资源负责管理ASM实例。
7 . ora.cluster_interconnect.haip这个资源负责管理集群haip
8 .ora.crf 负责管理11gr2版本集群CHM(Cluster Health Monitor)
根据以上的描述,可以看到集群在 ohasd层面的启动过程是:首先,/etc/inittab中的init. ohasd脚本被调用,之后该脚本启动ohasd.bin守护进程;然后ohasd.bin启动对应的代理进程,每个代理进程负责启动自己管理的集群资源。

3 . ohasd

3.1 HAIP

对于oracle集群,私网是非常重要的,节点至今通讯大部分通过私网通信的。节点之间心跳特点是持续存在,实时性高,数据量小,所以建议视同tcp/ip传输协议就足够了;节点之间内存融合特点是数据量打,对速度要求高,不建议使用tcp/ip,所以推荐使用UDP或RDS,同时oracle也建议在私网使用高可用和负载均衡设备。在11.2.0.2版本开始,oracel提供了私网的高可用和负载均衡特性—HAIP。
HAIP就是多个IP地址,oracle会默认在集群每一块私网卡上绑定一个169.254.X.X 地址,这个地址被称为HAIP,数据库实例之间和ASM实例之间通讯就靠这个HAIP来完成。如果某一块私网网卡出现故障,骑上绑定的IP地址可以漂移到其他私网网卡上,从而实现高可用,所以建议使用多块私网网卡,oracle也支持在安装完GI之后手动添加HAIP。
注意:oracle目前最多支持4块私网网卡。

3.2 CHM

CHM(cluster health monitor)是用力啊自动收集OS资源的统计信息,在11.2.0.2 版本开始,CHM会以ora.crf形式存在每个节点上。CHM对于诊断系统节点重启,hang,实例驱逐(Eviction),性能问题很有帮助。
CHM组件:
1 . CHM资料库(Repository),他是一个berkeley数据库,用于保存从各个节点收集到的信息。默认情况下存在/crf/db/下,默认大小1GB,最多保留3天。
2 . 系统监控服务(System Monitor Service),以osysmond.bin守护进程存在并运行在所有的节点上,负责定期收集OS信息,并发送到集群日志服务。
3 . 集群日志服务(cluster logger service),以ologgerd的形式运行在集群的CHM主节点和副节点上。主节点收集接收其他节点的osysmond.bin发送过来的OS统计信息,并记录到主节点的CHM档案中;副节点的ologgerd负责接收从主节点的集群日志服务发送过来的OS统计信息,并记录到副节点的CHM档案中,从而实现CHM高可用。
这里写图片描述
CHM 工作步骤:
步骤1:各个节点的osysmond通过集群私网想主节点的ologgerd发送本地节点OS统计信息。
步骤2:主节点的ologgerd 想本几点CHM资料库写入收到的统计信息,同时发送到副节点ologgerd。
步骤3:副节点的ologgerd 想本加点的CHM写入接收到的统计信息。
如果CHM主节点出现问题,副节点会接管CHM并成为新的主节点,之后的新主节点会从集群的其他正常节点中在选出一个作为一个新的副节点。需要说明的是 osysmond 和 ologgerd 守护进程都会以实时(RT)优先级运行, 以确保 CHM 能够准时地搜集操作系统的性能信息。
oracle提供oclumon和chm/os Graphical User Interface (CHMOSG)来访问CHM数据库。鍏朵腑 CHM/OS Graphical User Interface (CHMOSG)是图形工具们可以从OTN上下载,oclumon是命令行工具,
查看主节点和副节点:

jhdb01-> oclumon manage -get master replica 

Master = jhdb01
Replica = jhdb02

 Done

查看系统统计信息保存时间

jhdb01-> oclumon manage -get repsize 

CHM Repository Size = 61511

 Done 

收集指定时间内各个节点统计信息:

oclimon dumpnodeview -allnodes -v -s "2017-09-26 00:00:00" -e "2017-09-26 08:00:00" >/tmp/chm.log
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值