在 CentOS 上构建 Oracle 高可用
总体架构建议
- 在同城机房优先采用 Oracle RAC(Real Application Clusters)+ ASM,实现实例级故障切换与负载均衡;跨机房或异地建议叠加 Oracle Data Guard(物理或逻辑备库)实现灾难恢复与读写分离,形成 MAA(Maximum Availability Architecture) 架构。RAC 负责节点级高可用,Data Guard 负责站点级容灾,两者组合可覆盖大多数高可用与容灾场景。
方案一 Oracle RAC 部署要点(CentOS 7/8)
- 环境准备
- 至少 2 台服务器,配置 公共网络 与 私有互联(RAC Interconnect),规划 VIP/SCAN;共享存储建议使用 SAN/NAS/块存储,由 ASM 统一管理。
- 安装依赖包(示例):make、binutils、gcc、libaio、compat-libstdc++ 等;内核参数、用户与目录权限按 Oracle 推荐值配置。
- 安装顺序
- 先安装 Oracle Grid Infrastructure(含 Clusterware/ASM),再安装 Oracle RAC 数据库软件,最后用 DBCA 创建 RAC 数据库实例与服务。
- 关键配置
- 使用 ASM 创建磁盘组(如 DATA、FRA),配置 OCR/Voting 冗余;网络侧配置 公共/私有 接口与 VIP/SCAN,确保节点间与客户端连通性。
- 验证与运维
- 使用 crsctl 检查集群资源状态,执行节点宕机/网卡拔线等演练验证 自动故障切换;定期巡检告警与集群日志。
方案二 Oracle Data Guard 部署要点
- 主库准备
- 开启 归档模式,设置 FORCE LOGGING;按在线日志规格创建 Standby Redo Logs(SRL),数量至少比 ORL 多 1 组;配置 db_unique_name、静态监听与 TNS 条目;启用 Data Guard Broker(设置 dg_broker_start=true,Broker 配置文件置于 ASM/ACFS 或本地目录)。
- 备库搭建
- 物理备库可通过 RMAN 备份/复制 创建;逻辑备库通过 SQL Apply 重做日志。目录结构不一致时配置 db_file_name_convert / log_file_name_convert;备库可置于 READ ONLY/ACTIVE DATA GUARD 模式用于查询分担。
- 保护与切换
- 依据业务选择保护模式:最大保护/最大可用/最大性能;使用 Data Guard Broker 执行 SWITCHOVER/FAIL OVER,必要时结合 Fast-Start Failover(FSFO) 实现自动故障转移(需额外观察进程与网络条件)。
网络存储与系统加固
- 存储与多路径
- 共享存储建议由 ASM 管理,结合 多路径(Multipath) 提升链路冗余;定期校验磁盘组健康与坏块告警。
- 网络冗余与优化
- 服务器侧使用 Bonding/Team 实现网卡冗余;合理规划 公共/私有 网段与 MTU,优化 TCP 参数降低时延与丢包;跨机房部署时保证专线/加密链路的 带宽与时延 满足日志传输需求。
- 基础架构
- 统一 NTP 时间源,保障日志与集群一致性;按 Oracle 官方文档设置 内核参数、用户权限、资源限制;对公网访问启用 防火墙/ACL 与最小权限原则。
监控演练与运维流程
- 监控与告警
- 使用 Oracle Enterprise Manager 或 Prometheus + Grafana 监控实例/集群/备库延迟与同步状态;结合 Nagios/Zabbix 做主机与网络可用性告警;定期查看 AWR/ASH 报告定位性能瓶颈。
- 备份与演练
- 制定 RMAN 全备/增量 + 归档备份 策略,定期在备库演练 恢复/切换;验证 Data Guard 的 切换与自动故障转移 流程,确保 RTO/RPO 达标;变更前后保留 回滚方案 与 变更记录。