Oracle RAC 架构核心组件详解
我们可以把一个 Oracle RAC 架构类比成一个“多窗口营业厅”:
- 客户就是数据库请求;
- 每个窗口就是一个节点;
- 后台数据库是一套共享的系统;
- 整个大厅的秩序靠调度员来管理。
1. Oracle 实例(Instance)
每个 RAC 节点上运行一个 Oracle 实例,包括:
部分 | 说明 |
---|---|
SGA(共享内存区) | 缓存数据块、SQL、事务信息等 |
后台进程(如 DBWn、LGWR) | 管理数据写入、日志、恢复等操作 |
监听器 | 接收客户端连接请求 |
在 RAC 中,每个节点有自己的实例,但共享同一个数据库文件,所有节点可以并发处理请求。
2. 数据库(Database)
指的是共享在多节点之间的 数据文件、日志文件、控制文件 等。
- 存储通常由 ASM 管理;
- 多个实例共同访问这些共享文件;
- 一致性由集群机制保证(防止“两个节点同时改一行数据”的问题)。
3. Clusterware(集群件)
Oracle Clusterware 是 Oracle 提供的集群基础架构,是 RAC 的“大脑”与“调度员”,作用包括:
模块 | 作用 |
---|---|
节点管理 | 负责节点加入、离开、故障检测 |
服务管理 | 启动/停止数据库、监听器等资源 |
高可用机制 | 出现故障时自动切换资源、重启实例 |
心跳机制 | 保证节点之间互相知道“我还活着” |
Clusterware 包含以下组件:
3.1 CSSD(Cluster Synchronization Services Daemon)
最关键组件之一!
负责维护节点间的“心跳”和集群一致性。
- 检查其他节点是否活着(通过网络/存储);
- 如果发现某个节点长时间没回应,就会把它“踢出集群”(触发 fencing 或重启);
- 一旦心跳断了+无法访问 Voting Disk,就会触发节点自杀(自我重启保护机制)。
3.2 CRSD(Cluster Ready Services Daemon)
管理整个集群的资源状态
- 启动/停止实例、监听器、服务等;
- 管理 VIP 地址漂移(节点宕机后,IP 地址漂移到其他节点);
- 决定哪个节点该运行哪个服务。
3.3 EVM(Event Manager Daemon)
负责把集群事件广播出去,比如“谁上线了”、“谁死了”、“VIP 漂移了”等等。
4. ASM(Automatic Storage Management)
Oracle 提供的专用存储管理系统
- 把多个磁盘整合成磁盘组(Disk Group);
- 以“条带化”方式读写数据,提升性能;
- 提供冗余机制(Normal/High Redundancy);
- RAC 中的所有节点都访问同一组 ASM 磁盘。
ASM 类似于数据库专用的“软件 RAID + LVM”。
5. Voting Disk(投票盘)
CSSD 用它来决定谁活着,谁死了。
- 每个节点会定期向 Voting Disk 写入“我还在”;
- 如果节点既收不到其他节点的心跳、也无法访问 Voting Disk,会被判定为“失联”;
- 此时集群为防止脑裂,会强制把它踢出集群(自杀或被 fencing)。
Voting Disk 的健康状态决定了集群是否继续运行。
6. OCR(Oracle Cluster Registry)
存储集群中的配置信息(相当于“集群的注册表”)
- 包含节点列表、服务配置、资源依赖关系等;
- 每次改资源(比如修改服务漂移策略)都会写入 OCR;
- OCR 也必须高可用,通常是冗余的。
7. 私网通信(Private Interconnect)
节点之间用来“传心跳”和“同步缓存”的网络
- 一般使用 InfiniBand 或高速以太网;
- RAC 非常依赖这个链路,一旦中断就会触发节点判断异常;
- Oracle 内部使用 GES(Global Enqueue Service)与 GCS(Global Cache Service)来同步数据缓存和锁。
小结(从结构来看)
+----------------------------------------------------------+
| Oracle RAC 架构 |
+------------------+------------------+--------------------+
| 节点1 | 节点2 | 节点N |
| Oracle 实例 | Oracle 实例 | Oracle 实例 |
| Clusterware | Clusterware | Clusterware |
| ASM | ASM | ASM |
+------------------+------------------+--------------------+
\ | /
(私网 + 心跳通信 + Voting Disk)
\ | /
+----+----+
| 共享存储 |
+---------+