㈠ clusterware和RAC的关系
狭义上,RAC指借助“某种集群件”搭建出来的一个“多实例、单数据库”的环境
这里的集群件可以是 Oracle clusterware、Sun cluster等
clusterware把分布式主机虚拟成一个计算机
RAC把分布式实例虚拟成一个实例
clusterware向下管理硬件资源,向上为RAC提供服务
㈡ Oracle clusterware组成
① 磁盘文件
OCR disk和voting disk必须放在共享存储上
⑴ OCR disk
由于修改节点的配置信息不同步引起的“健忘”问题
Oracle采用OCR disk保存整个集群的配置信息
OCR disk的位置在/etc/oracle/ocr.loc
OCR disk的内容只能由master node上的OCR process读写
master node上的OCR process负责更新本地和其他节点的OCR cache内容
需要OCR 内容的其他进程,如CSSD、EVMD等都叫client process
这些进程不会直接访问OCR Cache,而是向OCR process发送请求,借助OCR process获得内容
如果想要修改OCR 内容,需要由该node的OCR process向Master node上的OCR process提交请求
由master OCR process完成物理读写,并同步到所有OCR cache
⑵ voting disk
在集群重构的投票阶段,节点向reconfig manager发送该节点所了解的成员的健康状况
在network heartbeat不可用的情况下, cluster分裂成多个 subcluster时
确定对方的subcluster中node的数量、发送killblock 以实现evictee的驱逐通知
这是个信号的传递者
crsctl query css votedisk查看voting disk的位置
② 后台进程
在安装clusterware最后阶段,会要求在每个节点执行root.sh
这个脚本会在/etc/inittab文件的最后添加如下3行:
h1:35:respawn:/etc/init.d/init.evmd run >/dev/null 2>&1 < /dev/null
h1:35:respawn:/etc/init.d/init.cssd fatal >/dev/null 2>&1 < /dev/null
h1:35:respawn:/etc/init.d/init.crsd run >/dev/null 2>&1 < /dev/null
可见,clusterware若干后台进程中最重要的无非是CSSD、CRSD、EVMD
⑴ OCSSD
这个算是最关键的进程了,如果它出现异常,会直接导致系统重启
CSSD通过心跳机制,实时监控集群健康状态,提供“脑裂保护”等基础服务
CSS服务有两种心跳机制:
私有网络的network heartbeat
voting disk的disk heartbeat
注意,在配置ASM时,也有个CSSD进程
用于支持ASM instance和RDBMS instance通信
在ASM上搭RAC需要通过$ORACLE_HOME/bin/localconfig.sh delete将此从/etc/inittab删除
因为RAC要求node只有一个CSSD进程
⑵ CRSD
需要HA的组件,都会以CRS resource的形式登记到OCR disk
而CRSD就是根据OCR 中的内容,负责监控CRS resource的运行状态,并要启动、停止、failover这些资源
⑶ EVMD
EVMD有两个任务:
每个节点至少有2张网卡提供连接
狭义上,RAC指借助“某种集群件”搭建出来的一个“多实例、单数据库”的环境
这里的集群件可以是 Oracle clusterware、Sun cluster等
clusterware把分布式主机虚拟成一个计算机
RAC把分布式实例虚拟成一个实例
clusterware向下管理硬件资源,向上为RAC提供服务
㈡ Oracle clusterware组成
① 磁盘文件
OCR disk和voting disk必须放在共享存储上
⑴ OCR disk
由于修改节点的配置信息不同步引起的“健忘”问题
Oracle采用OCR disk保存整个集群的配置信息
OCR disk的位置在/etc/oracle/ocr.loc
配置信息以“key-value”形式保存
OCR disk的内容只能由master node上的OCR process读写
master node上的OCR process负责更新本地和其他节点的OCR cache内容
需要OCR 内容的其他进程,如CSSD、EVMD等都叫client process
这些进程不会直接访问OCR Cache,而是向OCR process发送请求,借助OCR process获得内容
如果想要修改OCR 内容,需要由该node的OCR process向Master node上的OCR process提交请求
由master OCR process完成物理读写,并同步到所有OCR cache
⑵ voting disk
在集群重构的投票阶段,节点向reconfig manager发送该节点所了解的成员的健康状况
在network heartbeat不可用的情况下, cluster分裂成多个 subcluster时
确定对方的subcluster中node的数量、发送killblock 以实现evictee的驱逐通知
这是个信号的传递者
crsctl query css votedisk查看voting disk的位置
② 后台进程
在安装clusterware最后阶段,会要求在每个节点执行root.sh
这个脚本会在/etc/inittab文件的最后添加如下3行:
h1:35:respawn:/etc/init.d/init.evmd run >/dev/null 2>&1 < /dev/null
h1:35:respawn:/etc/init.d/init.cssd fatal >/dev/null 2>&1 < /dev/null
h1:35:respawn:/etc/init.d/init.crsd run >/dev/null 2>&1 < /dev/null
可见,clusterware若干后台进程中最重要的无非是CSSD、CRSD、EVMD
⑴ OCSSD
这个算是最关键的进程了,如果它出现异常,会直接导致系统重启
CSSD通过心跳机制,实时监控集群健康状态,提供“脑裂保护”等基础服务
CSS服务有两种心跳机制:
私有网络的network heartbeat
voting disk的disk heartbeat
注意,在配置ASM时,也有个CSSD进程
用于支持ASM instance和RDBMS instance通信
在ASM上搭RAC需要通过$ORACLE_HOME/bin/localconfig.sh delete将此从/etc/inittab删除
因为RAC要求node只有一个CSSD进程
⑵ CRSD
需要HA的组件,都会以CRS resource的形式登记到OCR disk
而CRSD就是根据OCR 中的内容,负责监控CRS resource的运行状态,并要启动、停止、failover这些资源
⑶ EVMD
EVMD有两个任务:
- 负责发布CRS生成的各种事件
- 是CSSD和CRSD通信的桥梁
每个节点至少有2张网卡提供连接
- 共有网卡:提供对外数据服务
- 私有网卡:用于节点间的通信,通信内容包括network heartbeat和cache fusion
每个节点需要3个IP地址:public IP、private IP和virtual IP(俗称:VIP)
本文转自ICT时空dbasdk的博客,原文链接:Oracle clusterware组成概述,如需转载请自行联系原博主。