㈠ 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)
相关文章
- How to Modify Public Network Information including VIP in Oracle Clusterware (文档 ID 276434.1)
- Oracle Lock 概述
- Oracle 备份 与 恢复 概述
- ORACLE clusterware组成
- 计算机组成原理概述
- Oracle PL/SQL编程学习笔记(一):概述
- ORACLE触发器概述之【行触发器】【weber出品】
- oracle进行字符串拆分并组成数组
- 【总文档】rac增加新节点的方法步骤 How to Add Node/Instance or Remove Node/Instance in 10gR2, 11gR1, 11gR2 and 12c Oracle Clusterware and RAC
- oracle多行合并成一行,并且行内不同值组成新列。显示在同一行