Golang

关注公众号 jb51net

关闭
首页 > 脚本专栏 > Golang > Oracle RAC环境

Oracle RAC环境使用及说明

作者:六月雨滴

这篇文章主要介绍了Oracle RAC环境使用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Oracle RAC 全称 Real Application Clusters(真正应用集群),是 Oracle 数据库提供的企业级高可用与横向扩展架构

简单来说:多个独立的服务器(节点)同时运行同一个 Oracle 数据库,所有节点共享同一份物理数据文件,对外表现为一个统一的数据库服务。

一、RAC 核心架构(5 大关键组件)

RAC 是一个 "多实例、单数据库" 的架构,与传统单实例数据库(一个实例对应一个数据库)有本质区别。

客户端 → 监听器(负载均衡) → 节点1实例/节点2实例/... → 共享存储(数据文件/控制文件/日志文件)
                ↓
          高速私有互联(Cache Fusion)

1、集群节点(Cluster Nodes)

2、Oracle Grid Infrastructure(集群件)

3、共享存储(Shared Storage)

4、数据库实例(Database Instances)

5、监听器与服务(Listeners & Services)

二、RAC 核心技术:Cache Fusion(缓存融合)

这是 RAC 区别于其他集群数据库的最核心技术,也是 RAC 高性能的关键。

工作流程

  1. 节点 A 需要修改数据块 X,发现节点 B 的缓存中已经有该数据块
  2. 节点 A 通过私有网络向节点 B 发送请求
  3. 节点 B 将数据块 X 的最新版本直接发送给节点 A
  4. 节点 A 修改数据块 X,然后通过私有网络通知其他节点该数据块已更新

三、RAC vs 单实例数据库对比

特性Oracle 单实例Oracle RAC
架构一个实例对应一个数据库多个实例对应一个数据库
高可用性单点故障:服务器宕机则数据库不可用无单点故障:一个节点宕机,其他节点自动接管
可扩展性只能纵向扩展(升级单台服务器 CPU / 内存)可以横向扩展(增加更多节点)
性能受限于单台服务器的硬件能力可以利用多台服务器的 CPU 和内存资源
维护成本低,配置简单高,需要专业的集群管理技能
硬件成本高,需要共享存储和高速网络

四、RAC 的主要优势

1、极致高可用性(99.99%+)

2、线性横向扩展

3、负载均衡

4、资源管理

五、RAC 的适用场景与不适用场景

1、适用场景

2、不适用场景

六、常见误解澄清

  1. RAC 不是备份解决方案:RAC 只能防止节点级故障,不能防止数据损坏或误删除,仍然需要定期备份
  2. RAC 不是性能万能药:如果应用设计不好(比如存在大量热点数据),RAC 性能可能比单实例还差
  3. RAC 不能代替容灾:RAC 只能解决本地机房的节点故障,不能解决机房级灾难,需要配合 Data Guard 使用

七、总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文