数据库管理235期 2024-08-27
数据库管理-第235期 为什么RAC架构仍然很强(20240827)
作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Pro: Database(Oracle与MySQL)
PostgreSQL ACE Partner
10年数据库行业经验,现主要从事数据库服务工作
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP、年度墨力之星,ITPUB认证专家、专家百人团成员,OCM讲师,PolarDB开源社区技术顾问,HaloDB外聘技术顾问,OceanBase观察团成员,青学会MOP技术社区(青年数据库学习互助会)技术顾问
圈内拥有“总监”、“保安”、“国产数据库最大敌人”等称号,非著名社恐(社交恐怖分子)
公众号:胖头鱼的鱼缸;CSDN:胖头鱼的鱼缸(尹海文);墨天轮:胖头鱼的鱼缸;ITPUB:yhw1809。
除授权转载并标明出处外,均为“非法”抄袭
在分布式数据库(在本文中特指数据需要分片的数据库)满天飞的时代,分布式数据库以其多节点、高可用、易扩缩可谓风光无两。但是深入查看国内各家数据库的发展,似乎RAC架构在回归,本期就从一个Oracle DBA的角度看看RAC架构为何仍然强大。
1 RAC简介
RAC,Real Application Cluster,可译作真实应用集群。这是一个典型的存算分离架构:
从软件层面来看主要有两部分:
- Grid Infrastructure:
- Oracle Clusterware:用于管理群集数据库处理,包括节点成员管理、组服务、全局资源管理和高可用性功能。
- Oracle Automatic Storage Management (Oracle ASM):对共享存储磁盘进行管理
- Database Software:数据库实例
从物理层面也主要有两部分:
- 数据库节点:也成计算节点,运行数据库实例
- 共享存储:提供数据库节点可同时访问的存储资源(不一定是集中存储)
从网络层面也主要有两部分:
- Public:外部应用访问数据库的网络
- Host:数据库节点的本机IP与主机名
- VIP:数据库节点可漂移的IP与主机名
- SCAN:数据库对外提供统一访问的IP与主机名,可漂移
- Private:用于集群心跳、Global Cache(GC)传输与融合、ASM远程访问等
- 存储(可选):用于一些基于IPSAN的存储方案
- 管理(可选):独立与Public与Private网络的管理网络
从数据库逻辑层面:
- 数据库实例:每个数据库节点(计算节点)都运行一个实例,多个实例对应一个数据库
- 数据库:多个实例对应为一个数据库
对于外部应用来说,通过统一访问入口Single Client Access Name (SCAN) IP访问到RAC集群,会自动根据策略分发至数据库节点VIP来访问数据库。对于任何应用来说,不需要考虑每个节点缓存的数据也不需要考虑数据是如何存放在不同类型的存储中,由数据库统一管理,对于应用来说RAC数据库就是一个多实例集中式数据库。
话说,简单介绍完了RAC,是不是发现某些国产分布式数据库也挺像的。
2 RAC架构的优势
高可用
- 数据库节点:
- 多个数据库节点,任一数据库节点异常不影响数据库运行
- 节点故障恢复或新建节点后无需跨节点同步数据,从存储获取即可
- 跨节点ASM可接管
- 网络:可以通过bond、多路多活的方式实现高可用,多套网络互不影响
- 存储:
- ASM对存储磁盘的高可用冗余配置
- 可以使用存储副本、镜像或分布式存储实现高可用
- 数据库:可以使用Data Guard、OGG等构建可切换的只读物理或双活逻辑灾备数据库
高性能
- 数据库节点:可以通过横向扩展数据库节点来增加数据库计算能力(数据库本身就不说了)
- 网络:可以使用几乎所有的网络基础设施,包括但不限于电口以太网、光纤以太网、InfiniBand、RoCE等
- 存储:可以使用高性能FCSAN、IPSAN集中存储,或高性能分布式存储
以上内容可能不完整。
3 RAC架构的难点
-
Cache Fusion
在RAC中,每个块只会缓存在一个节点(缓存和存在于内存中不是一件事情哈),涉及需要跨节点的操作需要通过Private网络进行传输与融合,如何提高传输和融合效率、降低操作延迟并满足ACID要求是非常难的
目前大多数其他使用类似RAC架构的数据库,是每个类似于数据库节点的角色都可能缓存相同的数据,然后通过全局元数据管理和事务管理服务进行控制,增加了内存、网络与协调计算的压力。 -
ASM
ASM可谓是RAC的大杀器之一,高效管理并利用存储资源
硬广:关于以上两点,目前HaloDB在HSM存储管理和RAC中已经部分解决一些问题。
-
软硬结合
- 对于RDMA网络技术的结合与使用
- Exadata软硬一体,包括但不限于RDMA(InfiniBand、RoCE)、NVMe SSD、PMEM等;ESS中的smart scan, storage index等
-
其他
- 对集群元数据的高效管理与使用,同时没有使用独立组件实现
- 高性能事务管理,同时没有使用独立组件实现
- …
总结
虽然说RAC是一个相对复杂的架构,但是对比起大多数分布式数据库来说还是相对简单的,同时在获得强大性能的同时无需进行业务逻辑层面的改造。
老规矩,知道写了些啥。