Oracle clusterware

来源:互联网 发布:跪台办 知乎 编辑:程序博客网 时间:2024/06/11 19:45
Oracle clusterware
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,配置信息以“key-value”形式保存。每个节点在内存中都有一份OCR disk的拷贝,这份内存叫 OCR cache,OCR cache的内容可由每个节点的OCR process读,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)
0 0
原创粉丝点击