CentOS 上实现 Oracle 高可用的主流方案与落地路径
一、方案总览与选型建议
- Oracle RAC(Real Application Clusters):多节点共享存储,实例级高可用与负载均衡,故障节点业务由其他实例继续提供服务,适合7×24 高并发核心库。
- Oracle Data Guard:主备库复制(物理/逻辑),提供零数据丢失或近零丢失的灾难恢复与切换能力,适合同城/异地容灾与读写分离读库场景。
- Global Data Services(GDS):在多库(如 RAC 与 DG 备库)之上提供连接池与全局服务,实现访问的自动路由与负载均衡,提升整体可用性与弹性。
二、RAC 本地高可用部署要点(CentOS 7/8 + Oracle 11g/19c)
- 网络规划与主机名
- 操作系统与安全基线
- 关闭或放行必要端口(如 1521、22),生产环境建议精细放行而非直接关闭防火墙。
- 将 SELinux 设为 permissive/disabled,并配置 NTP/chrony 保证节点时间一致。
- 共享存储与集群栈
- 使用 ASM(或厂商共享存储)承载数据/归档/快速恢复区,规划 OCR/Voting 磁盘冗余。
- 安装 Oracle Grid Infrastructure(集群件 + ASM),再安装 Oracle Database 软件并创建 RAC 数据库。
- 安装后验证
- 使用
crsctl stat res -t、srvctl status database -d <db_unique_name> 检查集群与数据库状态,确认 VIP/SCAN/实例 正常。
三、Data Guard 容灾与切换(物理备库为主,支持 Active Data Guard)
- 前置条件
- 主备库 Oracle 版本一致,主库开启 归档模式 与 FORCE LOGGING,并配置 密码文件(remote_login_passwordfile=exclusive)。
- 建议为主备库配置 静态监听,便于在 nomount 阶段远程连接。
- 关键配置步骤(示例参数)
- 主库:
ALTER DATABASE FORCE LOGGING;
SHUTDOWN IMMEDIATE; STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
ALTER SYSTEM SET db_unique_name='orcl' SCOPE=SPFILE;
ALTER SYSTEM SET log_archive_config='DG_CONFIG=(orcl,orcl2)' SCOPE=SPFILE;
ALTER SYSTEM SET log_archive_dest_1='LOCATION=/u01/app/oracle/oradata/orcl/arch VALID_FOR=(ALL_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl' SCOPE=SPFILE;
ALTER SYSTEM SET log_archive_dest_2='SERVICE=orcl2 LGWR SYNC VALID_FOR=(ONLINE_LOGFILE,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl2' SCOPE=SPFILE;
- 备库:创建与参数匹配的 pfile/spfile,以 nomount 启动后通过 RMAN 或 Data Pump 初始化数据文件,然后启用 MRP(介质恢复进程)。
- 管理与切换
- 使用 Data Guard Broker(
dgmgrl)统一管理,执行 SHOW CONFIGURATION、SWITCHOVER、FAILOVER 等操作,简化切换流程与一致性校验。
四、RAC + DG 企业级组合架构与连接治理
- 架构组合
- 生产侧采用 RAC Primary,容灾侧部署 单实例/单 RAC Standby,实现负载均衡 + 故障切换 + 异地容灾的纵深防护。
- 常见拓扑:主库为 RAC + SCAN,备库为 单实例(或同城第二机房 RAC),通过 LGWR SYNC/ASYNC 传输 Redo。
- 连接与服务
- 在 RAC 与 DG 上统一发布 服务(Service),客户端通过 SCAN/服务名 连接;结合 GDS 实现跨库连接池、就近路由与自动故障转移。
五、运维与监控要点
- 可用性
- 定期演练 Switchover/Failover,验证 RAC 节点宕机、存储抖动、网络分区、主备切换等场景的 RTO/RPO 指标。
- 对 VIP/SCAN/监听/ASM/集群资源 设置告警阈值与自检脚本,确保异常可观测、可恢复。
- 性能与健康
- 使用 AWR/ASH 定期分析负载与等待事件,优化 SQL、索引、统计信息、SGA/PGA 与 I/O 路径;检查 Redo 传输延迟、备库 Apply Lag 等关键指标。