📢📢📢📣📣📣
作者:IT邦德
中国DBA联盟(ACDU)成员,10余年DBA工作经验
Oracle、PostgreSQL ACE
博客专家及B站知名UP主,全网粉丝10万+
擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复,
安装迁移,性能优化、故障应急处理

文章目录
  • 1.共享的集群文件系统
  • 2.XAG集群管理
  • 3.高可用切换
  • 3.1 计划内切换
  • 3.2 进程异常切换
  • 4.颠覆认知的架构设计
  • 5.四大核心优势
  • 总结

在金融、制造业、电信等核心业务场景中,Oracle GoldenGate(OGG)的微服务架构已成为数据实时同步的“黄金标准”。如何实现OGG微服务的高可用?答案藏在ACFS共享存储与XAG集群管理的深度联动中。

OGG同步延迟突破警戒线!核心交易数据积压导致财务结算停摆。经过8小时紧急排查,竟发现传统NFS存储的单点故障是元凶…

在这里小编教你从架构设计到切换演练,手把手带DBA构建“永不宕机”的OGG高可用体系。

Oracle集群+ACFS竟让OGG故障率归零_oracle

为了在RAC环境下实现OGG的自动故障转移,以下的每个步骤都非常的关键:

1.共享的集群文件系统

OGG的配置文件、检查点文件(checkpoint files)、日志文件(trail files)和提取/复制日志文件(Extract/Replicat BR files)都应存储在所有RAC节点都可以访问的共享文件系统上。这种设置确保了无论OGG进程在哪个节点上运行,都能够访问到必需的配置和日志文件,同时也保证了故障转移后,新的OGG进程能够无缝地继续进行数据复制工作。

1. 创建ASM卷(grid用户执行)
asmcmd volcreate -G DATA -s 20G ogg_acfs_vol  

2. 格式化并挂载ACFS(所有节点root执行)
mkfs -t acfs /dev/asm/ogg_acfs_vol-123  
mkdir -p /u01/ogg_ha  
mount -t acfs /dev/asm/ogg_acfs_vol-123 /u01/ogg_ha  
chown -R oracle:oinstall /u01/ogg_ha  

3. 注册ACFS到集群资源(防止误挂载)  
srvctl add filesystem -device /dev/asm/ogg_acfs_vol-123 \
-volume ogg_acfs_vol -diskgroup DATA \
-path /u01/ogg_ha -user oracle -autostart NEVER
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

2.XAG集群管理

XAG是Oracle Grid Infrastructure的一部分,它提供了独立的代理(agent)来管理关键的中间件和应用服务,比如OGG。通过XAG,Oracle提供了一种简化的方式来部署和管理OGG,并且XAG支持与集群软件的集成,从而实现在故障发生时自动重启OGG服务。

由于指定的集成XAG,所以默认所有的服务器要等待xag来启动,增加到crs资源。

1.在这里可以创建vip,若不提前创建VIP,可以在添加资源服务时指定IP地址

appvipcfg create -network=1 -ip=10.10.10.20 \
-vipname=vip_ggma_oracle -user=grid -group=oinstall

2.通过agctl添加goldengate服务

agctl add goldengate ggsca1 --gg_home /u01/ogg12.3 \
--service_manager 
--ogg_container ogg
--config_home /mnt/acfs_gg/goldengate/deployments/ggsm01/etc/conf
--var_home /mnt/acfs_gg/goldengate/deployments/ggsm01/var
--port 9100 –adminuser admin
--nodes host1,host2 \
--network 1 --ip 10.10.10.20 --user oracle --group oinstall \
--filesystems ora.datac1.acfs_gg.acfs --databases ora.orcl2.db\
--oracle_home /u01/app/oracle/product/11.2.0/dbhome_1

3.通过agctl启动
agctl start goldengate instance_name
[--serverpool serverpool_name | --node node_name]
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.

通过浏览器登陆,通过VIP就可以访问OGG的微服务了

Oracle集群+ACFS竟让OGG故障率归零_微服务_02

3.高可用切换

3.1 计划内切换

此步骤的主要目的是计划内,将该OGG进程从某个节点切换到另外一个节点。

relocate命令将正在运行的GoldenGate实例从一个服务器池重新定位到另一个或从一个
节点到另一个

agctl relocate goldengate instance_name
[--serverpool serverpool_name | --node node_name]
  • 1.
  • 2.

3.2 进程异常切换

Kill OGG进程,此种情况下由于机器还存在而且VIP还是在该节点上,所以CRS检查到进程异常后,会去重启OGG管理进程及ER进程。

停止VIP对应网卡:此种情况下由于机器还存在而且VIP对应的网卡已经停止了,所以CRS检查到VIP异常后,会在另外一个节点去重启VIP、OGG管理进程。

4.颠覆认知的架构设计

传统架构

NFS存储+单实例OGG = 定时炸弹💣

❗️存储单点故障引发全链路中断

❗️垂直扩容遭遇性能天花板

新一代方案

RAC集群 × ACFS文件系统 × OGG微服务 = 钢铁防线🛡️

✅ 存储层:ACFS多节点并发读写

✅ 计算层:OGG微服务自动负载均衡

✅ 网络层:SCAN IP自动漂移

Oracle集群+ACFS竟让OGG故障率归零_oracle_03

5.四大核心优势

零单点故障:OGG进程、参数文件、日志均存储在ACFS共享卷,节点宕机时XAG自动迁移服务

秒级切换:基于Oracle Clusterware的集成,故障切换时间控制在30秒内

兼容性保障:XAG新架构完美支持OGG 19c微服务的adminclient接口(传统ggsci接口已淘汰)

运维可视化:通过crsctl命令实时监控OGG资源状态(如ggvip虚拟IP、ogg app进程组)

总结

通过RAC、OGG、XAG和集群文件系统的综合运用,企业可以构建一个健壮且灵活的数据库环境。这样不仅确保了关键业务的连续性和数据的一致性,还极大地增强了整个系统的可维护性和扩展性。

通过ACFS+XAG的黄金组合,DBA不仅能实现OGG微服务的“无缝切换”,更可将运维复杂度降低50%,本文提供的命令集已在实际生产环境中验证。未来OGG高可用将向“自治修复”迈进——但掌握今天的核心技术,仍是应对明天挑战的基石。