Ubuntu 环境下搭建 Oracle 高可用的主流方案与实施步骤

一、方案选型与适用场景
- Oracle Data Guard:支持一主一备或一主多备架构,基于重做日志实现同步或异步复制,兼容物理备库和逻辑备库,适用于异地容灾、快速主备切换以及报表查询分流(逻辑备)等场景。
- Oracle Real Application Clusters RAC:采用多节点共享存储架构,具备故障自动切换与负载均衡能力,适合高并发业务、近零停机维护以及本地机房高可用部署。
- Oracle GoldenGate:基于增量日志的异构数据库/跨平台实时复制方案,支持双向同步、读扩展以及零停机升级迁移。
- 辅助手段:例如Keepalived+VIP可用于应用接入层的轻量级故障转移,但不能替代数据库层面的高可用方案。
二、Data Guard 实施要点(物理备库)
- 环境准备
- 主库与备库均部署Ubuntu和相同版本的 Oracle 数据库,并配置专用高带宽、低时延网络;同时预留充足的归档日志空间与备份存储资源。
- 主库配置
- 开启归档模式:ALTER DATABASE ARCHIVELOG;
- 创建备用重做日志(SRL):ALTER DATABASE ADD STANDBY LOGFILE;
- 配置网络连接:在 tnsnames.ora 中增加备库连接串(如 STANDBY_DB)。
- 备库部署
- 可通过 RMAN 备份恢复或 Data Guard Broker 的方式创建物理备库;
- 设置备库关键参数:STANDBY_FILE_MANAGEMENT=AUTO,FAST_START_FAILOVER_TARGET(如需启用自动故障转移)。
- 建立同步
- 配置 LOG_ARCHIVE_DEST_n,例如:
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2=‘SERVICE=STANDBY_DB SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=STANDBY_DB’; - 启用 FAL_SERVER/FAL_CLIENT,用于自动获取缺失的归档日志。
- 配置 LOG_ARCHIVE_DEST_n,例如:
- 验证与切换
- 通过 DG Broker 或 SQL 执行 SWITCHOVER/FAIL OVER,验证数据一致性、同步状态以及切换耗时。
三、RAC 实施要点(两节点示例)
- 环境准备
- 建议准备至少 2 台服务器(推荐 Ubuntu 20.04/22.04 LTS),配置公网 IP、私有心跳 IP 和 VIP;
- 准备共享存储(如 ASM),并划分 OCR/Voting 磁盘组与数据库数据磁盘组;
- 安装依赖软件包(示例):sudo apt install -y automake binutils gcc libaio1 unixodbc unixodbc-dev ksh sysstat libtool-ltdl-dev。
- 安装 Grid Infrastructure
- 创建安装目录(如 /u01/app/oracle/product/19.0.0/grid),并解压安装介质;
- 使用 runInstaller 完成集群安装,指定节点、SCAN、VIP、ASM 磁盘组,安装结束后以 root 用户执行 orainstRoot.sh 与 root.sh。
- 安装数据库软件与创建 RAC 数据库
- 通过 runInstaller 安装 Oracle RDBMS 软件;
- 使用 DBCA 创建 RAC 数据库,设置实例数等于节点数,字符集选择 AL32UTF8,存储类型使用 ASM。
- 监听与服务
- 配置 LISTENER/LOCAL_LISTENER/REMOTE_LISTENER,确保数据库服务在集群内正常注册并实现连接负载均衡。
- 验证与管理
- 检查集群状态:crsctl check cluster、crsctl stat res -t;
- 检查数据库运行情况:srvctl status database -d orcl;
- 进行故障转移测试:停止某一节点实例,验证 VIP 漂移及其他节点的自动接管能力。
四、GoldenGate的实时复制与读扩展实施要点
- 安装与目录
- 在主库和目标库安装版本匹配的 Oracle GoldenGate,并创建目录(如 /u01/goldengate)。
- 主库 Extract
- 配置抽取进程以捕获重做日志:
./ggsci
ADD EXTRACT ext1, TRANLOG, BEGIN NOW
ADD EXTTRAIL /u01/goldengate/dirdat/aa, EXTRACT ext1
START EXTRACT ext1
- 配置抽取进程以捕获重做日志:
- 备库 Replicat
- 配置应用进程:
./ggsci
ADD REPLICAT rep1, EXTTRAIL /u01/goldengate/dirdat/aa, BEGIN NOW
START REPLICAT rep1
- 配置应用进程:
- 验证与切换
- 在主库写入测试数据,验证备库是否实现实时同步;同时支持双向复制以及零停机升级或迁移等应用场景。
五、通用加固与运维实践
- 备份与恢复
- 通过 RMAN 执行全量备份+增量备份策略,并定期开展恢复演练;在 RAC 环境中还应定期备份 OCR(ocrconfig -manualbackup)。
- 监控与告警
- 使用 OEM 或 Zabbix 监控 CPU、内存、IO、集群资源、日志传输延迟等关键指标,并配置阈值告警。
- 网络与安全
- 合理规划公网与私网隔离,仅开放必要端口(如 1521),限制数据库主机访问范围;并按照最小权限原则配置 oracle/oinstall/dba 等用户组。
- 定期演练
- 建议每季度进行一次高可用切换演练,包括 Data Guard 切换/故障转移、RAC 节点宕机接管等,验证 RTO/RPO 指标是否达标。
