随着金融企业数字化转型,企业越来越重视业务连续,如何保证IT系统不中断运行,为客户提供持续服务,尤其当故障发生时,保证业务数据不丢失,快速故障切换,保证系统持续运营,让用户察觉不到业务中断,提升客户体验。加拿大丰业银行采用Oracle Data Guard,实现业务可用性,值得金融行业借鉴。本文将介绍加拿大丰业银行是如何思考业务连续性方案。
丰业银行在2014年底时,已经建立灾备环境,用于数据实时备份,但还不是真实容灾����,����环境,仅仅用数据局备份和测试。当时IT架构如下所示,数据库在生产端采用RAC部署,在备端采用非RAC部署,它们之间通过Data Guard实现生产和备端之间的数据实时备份。
当时环境配置如下:
生产环境双节点RAC部署,数据库版本文为11.2.0.3
备端非RAC部署
使用Data Guard实时同部署,不使用DataGuard Broker
IBM AIX 服务器
OEM 12.1.0.2 监控加上第三方工具
测试演练得故障切换的步骤如下:
1) 生产端临时停机
2) 分离应用镜像数据
3) 修改配置
4) 灾备端日志Apply,启动备端数据库为可读写状态,不再是standy状态
5) 重新启动继续生产环境,处于Data Guard灾备状态。生产站点和备端站点同时运行,前者继续运行真实业务,后者运行测试系统,用于测试验证
6) 在灾备站点运行测试系统,进行在线业务处理和批量处理,确保不要让测试影响生产,反之亦然,不要让生产影响测试。
7) 测试完成之后,就重新恢复到原环境,包括修改配置,重启生产和灾备数据库,使得生产端恢复到通过Data Guard实时同步到备端
整个测试过程持续24小时,生产端没有灾备环境可用,风险比较高。原来每年的周末灾备只是测试,同时运行生产和测试,存在风险,开始和结束都要修改配置,需要生产停机两次,在测试期间没有灾备。
2015年初,丰业银行重新设立容灾目标,实现真实生产环境下,能够自动容灾切换,应用和数据库切换同时在1小时切换到备端,然后备端运行生产系统至少24小时,包括应用和数据库系统,然后在1小时内从备端切回到生产端。灾备系统不是简单一个用于测试灾备系统,而是能够真正应用生产的容灾环境,并且能够自动快速切换,无需手工配置,包括所有组件可以快速切换,不限于数据库。当时公司的技术标准更加倾向于通过跨站点镜像存储技术,用于非Oracle数据库,也希望该技术同样适用于Oracle数据库,而非Data Guard方案。所以,需要确认存储镜像技术对Oracle数据库是否可行。为了找到最有利的容灾方案,公司考察了如下四种方案:
非RAC部署的跨站点存储镜像技术
RAC Extended集群
Data Guard和Active DataGuard
GoldenGate以及其他复制技术
下面总结对比四种技术方案的考察结果:
非RAC部署的存储复制,其架构如下图。
该方案特点分析:
• 优点:
– 对所有数据库、非数据库文件都适用
– 通过I/O系统,而非服务器资源实现复制,对服务器压力影响比较小
• 缺点:
– 备端应用和系统处于非活动状态,无法分担生产负载,设备浪费
– 异步复制,不太确定两端存储变化是否正确写入,通过测试发现有几次失败情况
– 如果源端存在坏块,不能检查和自动校正
– 没有和Oracle DB级整合,只属于存储级复制
– 如果采用同步镜像复制,有明显延迟,只能要求距离非常近
– 块级数据被复制,网络传输量比较大
– 需要经常性监控和测试,确保数据已经被正确复制
– 如果采用镜像复制技术,依然需要类似的Oracle Data Guard保护机制
Oracle 的RAC Extended技术,其架构如下图。
• 优点:
– 所有连接冗余
– 数据镜像跨两个存储阵列和失败组
– 所有节点全活,和RAC节点相同
• 缺点:
– 网络延时问题要求站点很近,网络成本高
– 需要第三方投票磁盘
– 有可能坏块复制
– 仍然需要DataGuard技术
Data Guard/Active Data Guard容灾方案,其架构如下图。
• 优点:
– 只传输日志,网络传输量比较少,性能比较高
– 精确数据库物理复制
– 备端在线可读
– 备端可以做备份,不影响生产
– 多种方式:物理,逻辑,快照等方式
– 自动故障转移和切换
– 坏块检查、阻止和修正
– 自动坏块修复,从内存中复制,防止I/O损坏
– 两种传输方式:同步和异步模式,分别支持短距离和长距离
– 同步方式支持零数据丢失
– 支持DDL和DML
– 通过Oracle Enterprise Manager(OEM)或者Data GuardBroker来管理
• 缺点:
– 同步方式影响性能,异步方式可能有少量数据丢失,但是DB12c的Far Sync选件能够克服该缺点
– 需要单独购买License
Active Data Guard 12c提高灾备能力,通过FarFsync实现同步redo日志传输,通过异步方式传输到远端,取得了很好的平衡,既实现了零数据丢失,又不影响性能。
GoldenGate解决方案,其架构如下图。
• 优势:
– 目标库可读写
– 可以是逻辑多主双向复制
– 支持异构平台
– 数据可转换,类似ETL
– 数据库滚动升级、运维和迁移
– 应用升级和零宕机
– 支持多版本和多平台
– 支持DDL和DML
– 静态抽取和加载
– GG管理已集成到OEM12c
• 缺点:
– 性能和易用性不如DG
– 只支持异步
– 合适实时数据备份,容灾还不够
– 非数据库文件必须备份
– 没有Active Data Guard 坏块自动检查和修复功能
经过上述分析, Data Guard / Active Data Guard相对是比较理想的灾备方案,对Oracle数据库来说,自动容灾切换、同步模式下的零数据丢失、自动坏块检验和修复、备端在线可读等特性,要优于存储镜像技术、GoldenGate和RAC Extended 集群。如果采用其他容灾技术,仍然需要Data Guard / Active Data Guard来弥补它们的缺陷。而且,Oracle DB12c提供Far Sync服务,极大提高远程容灾性能,实现零数据丢失。因此,经过深入对比分析之后,丰业银行决定采用Data Guard/Active Data Guard作为公司的Oracle数据库容灾技术,实现自动故障切换。
为了解决2015年之前,容灾系统只能用于测试,而无法作为生产容灾的问题,丰业银行决定在备端搭建RAC节点,提升备端性能和可用性,可以真正需要时接管生产,保证应用连续性。同时,部署Data Guard Broker,用于Data Guard监控管理和自动故障切换,实现实时故障自动转移。升级之后的部署架构如下所示。
该方案的最大特点是实现自动容灾切换,不需要人工介入,使得备端能够真正承担灾备的作用,实现了在短时间内的自动故障切换。