Oracle RAC 性能优化详解

Oracle RAC 性能优化详解

适用版本:Oracle Database 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07


1. 概述

RAC 性能优化保证集群高效[1]:

详细见:Oracle RAC 性能调优Oracle RAC Cache Fusion 详解


2. 性能指标

2.1 Cache Fusion

- gc 等待
- 节点间传输
- 关键

2.2 负载均衡

- 节点均衡
- 服务分布
- 性能

2.3 响应时间

- 查询响应
- 事务响应
- 用户体验

3. Cache Fusion 优化

3.1 减少 Transfer

- 索引
- 分区
- 优化 SQL

3.2 节点亲和

- 服务隔离
- 节点固定
- 数据本地

3.3 网络

- 低延迟
- 高带宽
- HAIP

4. gc 等待优化

4.1 诊断

SELECT event, time_waited, total_waits 
FROM v$system_event 
WHERE event LIKE 'gc%' ORDER BY time_waited DESC;

4.2 常见事件

- gc cr block 2-way
- gc cr block 3-way
- gc current block 2-way
- gc buffer busy

4.3 优化

- SQL 优化
- 分区
- 服务隔离
- 索引

详细见:Oracle RAC Cache Fusion 详解


5. 服务隔离

5.1 配置

srvctl add service -d prod -s oltp_svc \
  -preferred prod1
srvctl add service -d prod -s report_svc \
  -preferred prod2

5.2 优势

- 减少跨节点
- 性能
- 隔离

5.3 应用

- 不同业务
- 不同节点
- 亲和

详细见:Oracle 服务管理详解


6. 分区优化

6.1 分区

- 按节点分区
- 数据本地
- 减少 Cache Fusion

6.2 分区键

- 业务相关
- 节点分布
- 优化

6.3 Local Index

- 分区级
- 性能
- 优化

详细见:Oracle 分区表性能优化


7. 网络优化

7.1 Private

- 低延迟
- 高带宽
- HAIP

7.2 带宽

- InfiniBand
- 25G/100G
- 足够

7.3 优化

- MTU
- TCP
- SQLNet

8. 内存优化

8.1 SGA

- Buffer Cache
- Shared Pool
- 调整

8.2 PGA

- 排序
- Hash
- 调整

8.3 节点

- 节点间一致
- 监控
- 优化

详细见:Oracle 内存调优 SGA PGA


9. I/O 优化

9.1 ASM

- 磁盘分布
- 条带
- 优化

9.2 存储优化

- 独立
- 高速
- 监控

9.3 Exadata

- 智能扫描
- 存储索引
- 性能

10. SQL 优化

10.1 执行计划

- 一致
- 优化
- 监控

10.2 并行

- 合理
- 节点间
- 优化

10.3 绑定变量

- 减少硬解析
- Shared Pool
- 性能

详细见:Oracle SQL 调优最佳实践


11. 监控

11.1 AWR

@?/rdbms/admin/awrrpt.sql

11.2 ASH

SELECT * FROM v$active_session_history WHERE ...;

11.3 RAC 视图

SELECT * FROM gv$sysstat WHERE name LIKE 'gc%';
SELECT * FROM gv$system_event WHERE event LIKE 'gc%';

12. 热点块

12.1 诊断

SELECT * FROM v$latch_children WHERE name = 'cache buffers chains' 
ORDER BY gets DESC;

12.2 优化

- 反向索引
- 分区
- 减少争用

12.3 监控

- 等待事件
- 块争用
- 优化

13. 应用场景

13.1 OLTP

- 服务隔离
- 节点亲和
- 性能

13.2 OLAP

- 并行
- Cache Fusion
- 性能

13.3 混合

- 隔离
- 监控
- 优化

14. 常见问题

14.1 gc 等待高

- Cache Fusion
- 优化 SQL
- 服务隔离

14.2 负载不均

- 服务
- 负载均衡
- 优化

14.3 性能下降

- 诊断
- 优化
- 监控

15. 最佳实践

  1. 服务隔离:亲和
  2. 分区:减少 Cache Fusion
  3. 网络:高速
  4. HAIP:冗余
  5. 监控:gc 等待
  6. SQL:优化
  7. 内存:调整
  8. I/O:优化
  9. 测试:性能
  10. 文档:配置

16. 参考资料

[1] Oracle Real Application Clusters Administration and Deployment Guide 19c https://docs.oracle.com/en/database/oracle/oracle-database/19/racad/