复杂RAC环境的管理与优化
立即解锁
发布时间: 2025-08-23 01:44:14 阅读量: 1 订阅数: 5 

# 复杂 RAC 环境的管理与优化
## 1. 小型与大型集群设置对比
大多数 IT 需求通常源自业务需求,为满足这些需求,会有小型或大型集群设置。很难直接判断小型集群设置和大型集群设置哪个更好,因为不同组织的需求差异很大。不过,了解两者的优缺点后,就能做出更合适的选择。
### 1.1 大型集群设置
大型集群设置是一个复杂的环境,涉及大量资源部署,可能会出现以下情况:
|问题|详情|
| ---- | ---- |
|资源启动延迟|当环境中配置了过多资源(如数百个数据库监听器和应用服务)时,节点被逐出后,自动启动资源可能会有显著延迟。节点重启时,需扫描集群中注册的资源列表,这也会导致启动延迟。|
|日志信息收集困难|遇到 Clusterware 相关问题时,从集群所有节点的各种日志中收集所需信息既耗时又困难。|
|ASM 活动影响大|任何 ASM 磁盘/磁盘组相关活动都需要集群中所有 ASM 实例进行通信和操作。若某个节点的 ASM 实例出现问题,会影响其他节点的 ASM 实例,可能导致性能下降、实例崩溃等。|
|共享存储问题|准备共享存储 LUN 时,必须确保所有集群节点都能访问。若某个节点缺乏所有权、权限或无法访问 LUN,该磁盘就不能添加到任何磁盘组,且很难追踪是哪个节点出现问题。|
|集群堆栈操作问题|从多个节点并行启动/停止集群堆栈会锁定整个集群的 GRD,可能导致后续节点上的集群堆栈启动出现问题。|
|节点逐出频繁|若大型集群实施没有优化配置,可能会频繁出现节点逐出情况。|
|资源上限问题|当环境中部署大量数据库时,可能会达到 ASM 磁盘组和磁盘数量的上限。|
### 1.2 小型集群设置
小型集群节点数量较少,易于管理,复杂度较低。如果可能,采用多个小型集群设置是一个不错的选择,可减少管理复杂度和工作量。
## 2. 脑裂场景及避免方法
脑裂场景是 RAC DBA 或 DMA 最不愿遇到的情况,它与节点逐出、隔离、STONITH 等术语同义。脑裂场景源于医学上的裂脑综合征,在 RAC 集群中,指的是各个实例功能重叠,但彼此之间缺乏一致性和协调性,即集群节点间通信中断,节点被逐出或踢出集群,导致节点/实例重启。这可能由多种原因引起,如私有集群互连硬件故障、节点因 CPU/内存不足而无响应等。
### 2.1 避免脑裂场景的最佳实践
为消除或减轻潜在的脑裂场景,可采用以下最佳实践,这些方法也有助于性能调优:
- **网络层冗余**:使用冗余交换机/网络接口卡(NIC)进行捆绑或组队,确保组件故障转移经过充分测试,故障转移时间不超过 RAC 脑裂场景的通信阈值。
- **CPU 资源管理**:为应用工作负载分配足够的 CPU,并设置 CPU 消耗上限。可通过 DBRM、实例隔离、集群管理的数据库服务等技术限制 CPU 消耗。
- **内存资源管理**:为各种应用分配足够的内存,并设置内存消耗上限。自动内存管理(AMM)可限制 SGA 和 PGA 区域。在 11g 中,若在 Linux 系统的 HUGEPAGES 上使用自动共享内存管理(ASMM),可能会有挑战;12c 引入了 PGA_AGGREGATE_LIMIT 参数来解决此问题。
- **资源管理技术**:在 Exadata 上运行 RAC 集群时,使用 DBRM 和 IORM。若没有资源消耗限制,单个恶意用户的一个或多个失控查询可能会耗尽所有资源,导致节点无响应,反复出现节点逐出/脑裂场景。
- **实例隔离配置**:为多租户数据库 RAC 节点设置和配置实例隔离(CPU_COUNT 参数),监控与实例隔离相关
0
0
复制全文
相关推荐










