Oracle RAC One Node 详解
Oracle RAC One Node 详解
适用版本:Oracle Database 11g R2+ / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07
1. 概述
RAC One Node 是单实例 RAC[1]:
详细见:Oracle RAC 架构深度解析。
2. 特性
2.1 单实例
- 单实例运行
- 集群管理
- 高可用
2.2 在线迁移
- 实例迁移
- 零停机
- 透明
2.3 升级
- 滚动升级
- 零停机
- 灵活
3. 优势
3.1 vs 单实例
- 高可用
- 在线迁移
- 自动重启
3.2 vs RAC
- 成本低
- License 少
- 简单
3.3 适用
- 中小业务
- 高可用需求
- 成本敏感
4. 配置
4.1 创建
# 使用 DBCA
dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbName prod \
-sid prod \
-racOneNode \
-nodelist node1,node2
4.2 命令
srvctl add database -d prod -o $ORACLE_HOME -c RACONENODE \
-i prod1 -n node1
srvctl start database -d prod
4.3 服务
srvctl add service -d prod -s oltp_svc \
-preferred prod1 \
-available prod2
5. 在线迁移
5.1 命令
srvctl relocate database -d prod -n node2
5.2 流程
1. 目标节点启动实例
2. 数据同步
3. 服务切换
4. 源实例停止
5.3 验证
srvctl status database -d prod
6. 故障切换
6.1 自动
- 节点故障
- 集群检测
- 实例重启
- 服务切换
6.2 OMF
- Oracle Managed Files
- 自动
- 简化
6.3 时间
- 秒级
- 应用重连
- TAF/AC
7. 升级
7.1 滚动
- 迁移到节点 2
- 升级节点 1
- 迁移回
- 升级节点 2
7.2 零停机
- 在线迁移
- 透明
- 业务不停
7.3 测试
- 演练
- 验证
- 文档
8. 监控
8.1 状态
srvctl status database -d prod
srvctl config database -d prod
8.2 集群
crsctl stat res -t | grep prod
8.3 实例
SELECT instance_name, host_name, status FROM v$instance;
9. 转换
9.1 单实例 -> RAC One Node
srvctl add database -d prod -c RACONENODE ...
9.2 RAC One Node -> RAC
-- 在线转换
ALTER SYSTEM SET cluster_database=true SCOPE=SPFILE;
9.3 灵活
- 按需
- 升级
- 扩展
10. 应用场景
10.1 中小业务
- 成本敏感
- 高可用
- 简单
10.2 测试开发
- 单实例
- 可迁移
- 灵活
10.3 升级过渡
- 单实例 -> RAC One Node -> RAC
- 渐进
- 灵活
11. 限制
11.1 单实例
- 同时只一实例
- 无并行
- 限制
11.2 资源
- 备节点空闲
- 资源利用
- 评估
11.3 License
- 比 RAC 便宜
- 检查
- 评估
12. 常见问题
12.1 迁移失败
- 资源
- 检查
- 重试
12.2 性能
- 单实例
- 评估
- 优化
12.3 故障
- 集群
- 自动
- 检查
13. 最佳实践
- 中小业务:适合
- 在线迁移:利用
- 滚动升级:零停机
- 服务:配置
- TAF/AC:应用
- 监控:状态
- 测试:迁移
- 文档:配置
- 演练:故障
- 评估:扩展
14. 参考资料
[1] Oracle Real Application Clusters One Node 19c https://docs.oracle.com/en/database/oracle/oracle-database/19/racad/