Oracle 远程 RAC 打造双活数据中心 | 从容灾迈向双活案例分享

我们都知道,容灾系统是指在相隔较远的异地,建立两套或多套功能相同的 IT 系统,互相之间可以进行健康状态监视和功能切换,当一处系统因意外(如停电、UPS 故障、空调故障、火灾、地震等)停止工作时,整个应用系统可以切换到另一处,使得该系统功能可以继续正常工作。


根据现有技术,如果流程顺畅的话,切换时间为5分钟到1小时左右。


在现有容灾系统运作模式下,很多企业在灾备流程中有一个上报领导批准的环节,甚至有些企业还有一个发布公告的流程。因此,在实际运作中,真正的切换时间将会更加漫长。


近几年就有过银行、运营商出现生产数据库故障,灾备中心未能及时切换的案例。给客户和社会带来较大的影响,也引起银监会、运营集团公司的关注及通报。


近年来,互联网企业云计算、大数据风起云涌,传统企业在市场压力下,也面临着利用新技术,更好的服务用户与市场的迫切要求。


接下来我们将以某省移动运营商为例,介绍其是如何从传统灾备系统建设迈向双活数据中心的。


方案背景


1

问题提出


2014年6月,XX移动接到集团业务连续性检查要求,需要上报容灾演练的时间和方案。由于该公司正在和开发商一起做核心业务系统改造。如果按传统方式,先把新系统改造上线,再搭建容灾系统,在本年度完成这两个大项目有一定的困难。


另外,目前中国移动集团对容灾系统 RTO 要求为30分钟,对应急系统的 RTO 要求为15分钟。虽然传统的容灾系统、应急系统架构在应对晚上演练检查能够勉强满足要求,但当白天业务高峰出现真正的故障需要切换时,却发现有各种问题,比如切换过慢,部分接口不同步等。即使勉强切换成功,也是带“伤”运行,很多业务功能和接口也不能跑通。当切换回生产数据库时,也有一大堆工作要做。

2

应对方案


针对这种情况,我提出了新业务系统改造上线与 ORACLE 远程 RAC 双活一起建设,既可解决容灾系统建设时间不足,也可解决传统方案容灾、应急切换过慢的问题。为了解决误删除数据等人为故障,后期建设 ADG+Flashback DB,这样可保证整个基础架构高枕无忧。

3

方案 PK


提到双活,一个绕不过的词就是 EMC VPLEX.


Vplex 是 EMC 推出的一款企业级云存储设备,主要解决企业异构存储迁移、相互备份、高可用,以及两地数据中心数据同步、高可用等相关问题,大体分为:

  • VPLEX Local 提供数据中心内部的高可用

  • VPLEX Metro 同步数据的高可用,延时在 5ms 内

  • VPLEX Metro 异步数据的高可用,延时在 50ms 内


所谓的“扩展 ORACLE RAC",也就是我说的远程 RAC。


本项目中,也有人提出 ORACLE 远程 RAC 是否需要采购 VPLEX。经过仔细的对比分析,就 ORACLE 数据库的双活来看,是不需要 VPLEX 等存储双活方案的。其实,加入 VPLEX,会对远程 RAC 带来更大的风险,就是所谓”费力不讨好“。


引入 VPLEX 会引发下列问题:


1. 串联引发的性能问题


当时 PK 时,有另外一个省级移动公司的 VPLEX 测试报告:

本地存储

FC ping 延时:

received reply from XXXXX: 12 bytes time: 447 usec

远程存储:time:1059 usec


  • 主机直接访问磁盘阵列 3.7-3.8ms

  • 主机通过 VPLEX Local 访问磁盘阵列 4.5-4.8ms

  • 主机通过 VPLEX Metro 访问磁盘阵列 4.6-4.9ms


结果表明,就是算本地存储,经过 VPLEX 后,会增加 1ms 左右的延时,如果采用 ASM技术,这 1ms 是可以省下来的。


2. 串联引发的可靠性问题


再好的电子设备,也是会坏的,当 VPLEX 集群中有一台 VPLEX A 设备损坏,将会导致A数据中心的数据库节点不可用,另外一个数据中心B会有5秒的 IO 锁定!


由于B中心 IO 锁定5秒,如果是一个每秒10000笔事务的数据库,B中心的数据库节点将会有50000个 ACTIVE 会话,这将撑爆B中心数据库的连接,导致两个数据中心完全不可用!!


更麻烦的是软件 BUG,如果出现 VPLEX 存储集群方面的 BUG,也是一大隐患。


3. 因加上存储双活后,将会出现集群争斗问题(the Dueling Cluster Framework Issue).

 

什么是集群争斗问题呢?

 

此问题过程简单描述如下:


① 数据中心间链路出现问题

② 存储集群选择驱逐数据中心 A

③ ORACLE GI 选择驱逐数据中心 B

④ 数据中心 A, B 都不能提供服务!!!


因为 ORACLE RAC 心跳 IP 网络与 VPLEX Witness 的 IP 网络不完全一致,当 IP 网络出现故障时,就有可能出现驱逐行为不一致的情况。


虽然厂商称可以和 ORACLE CRS 保持一致,但由于实际情况实在是太复杂,加之 ORACLE 版本、补丁升级,就会导致不一致的现象出现.


这么多种情况,要想做到完全驱逐机制一致,是不太可能的。


4. VPLEX LICENSE 有容量限制


客户今年买的是 10TB 容量 LICENSE,明年业务量增长了,还得走采购流程,购买 LICENSE,现在的市场环境,动不动搞秒杀活动,数据量蹭蹭的往上涨,到时核心眼看着有磁盘容量,就是没有 LICENSE 用,也是很郁闷的。


我去!那 VPLEX 是不是白买了?

不会,如果您是土豪钱多,买了 VPLEX 用途也是大大的。比如说用在中间件上面。


传统架构的容灾,主要关注的是数据库的数据同步问题,忽略了中间件、应用程序、MQ 的同步。尤其是一些定制化的接口,会有一些TXT或特定格式的文件落在某个被人遗忘的角落。这也是一些领导在关键时刻不敢切换到容灾环境的真正原因!


如果10年前有了 VPLEX、LAN 大二层、ORACLE 远程 RAC 技术,我估计自己做梦都会笑醒。因为我那时负责容灾项目,经常被老板问:“你的容灾敢真正切换吗?” 说实话,心里真没底,就是因为应用版本,接口,MQ 等各种问题,裸光纤也太贵,不敢用。


有了 VPLEX,可以结合 VMWARE VMOTION\HA、中间件、MQ 集群等技术。当故障发生时,迅速将中间件、MQ 等切换到异地。


再也不用担心应用程序版本不是最新。

再也不用担心配置 XML没有及时更新。

再也不用担心 MQ 中的交易队列数据丢失在发生灾难的数据中心。

再也不用担心某个被人遗忘的接口 TXT 文件丢失在服务器的本地硬盘。

......


总之,有了双活的数据中心,妈妈再也不用担心我的容灾切换啦!


真正的双活,机器随便宕!

这么好的东西,为什么用的人这么少呢?原因有很多:


一是这些技术成熟时间也不长

二是 ORACLE 没有商业利益,没有用心推广

三是很多人担心网络不稳定,会搞挂系统

四是担心网络成本


成本问题

下面我讲下大家关心的网络成本问题。


做双活,得有裸光纤,还得有波分设备。以深圳为例,裸光纤月租 750元/公里/月,750元*20公里=1.5万. 


大客户还有优惠哦!500元/公里/月,500元*20公里=1万,比互连网 100M 专线还便宜,就可以建成 80GB 链路。我当年的 2M SSH 链路也要5000元每月呀。


波分设备,现在叫 OTN。小客户用华为 OSN 1800就足够,10万左右搞定;大客户可以用 OSN 6800,50万元左右搞定。当然,本客户是运营商,现成的 OSN 8800,不用额外花钱。还有裸光纤一次性施工费10万左右,网络链路费用全部搞定了。是不是比想像中的费用低很多?


附录

Q & A


1. 在人力和资源都充足的情况下,这整个搞好,需要多久?大概费用多少?

答:本案例客户花了3个月左右,费用要看情况,几十万到几百万不等。总体来说,远低于EMC VPLEX 方案。


2. 远程 rac 是通过网络同步数据的?

答:是 RAC ASM 通过 FC SAN 网络同步数据


3. 远程 RAC 和 extend RAC 不是一回事吧?

答:就是 Extended RAC,因为太绕口,所以称之为"远程 RAC",估计名字拗口,也是这项技术推广不利的一大因素。


4. 如果我现在两个机房的都是 RAC,这两组 RAC可以建立一组 RAC 吗?

答:可以。需要大二层网络,SAN 打通,距离不超过 50 公里。


5. 双活 rac 与单活 rac 有什么区别,除了网络上?

答:还需要有双份存储,双机房。


6. 生产系统配置 flackback DB,闪回日志是否需要占用大量存储空间?

答:建议在 ADG 上开启。


7. Oracle 官方不是不建议这么做吗

答:ORACLE 没有商业 LICENSE 利益,反而会带来后期服务的麻烦,所以不太推这项技术.


8. 跨机房的距离一般多少公里?

答:业务量非常小的系统,比如 100TPS 左右,100公里问题不大,3000左右 TPS,30-50 公里;10000 以上 TPS,20公里。带宽方面,根据业务情况来看,基本上都需要裸光纤,加上波分、OTN 设备,成本不高。


9. 远程 RAC,对 IP 网络和 SAN 网络的要求分别是什么?

答:在上述距离内,采用10万-50万左右的 OTN (波分)设备,在波分设备上再架设通用的 IP 网络和 SAN 网络。此方案完全可以搞定网络带宽和延时要求。


10. 必须有第三位置的心跳盘才能解决脑裂问题?

答:是的,如果预算有限,仲裁盘一般选在生产机房第三个存储。


11. 远程 asm mirror 网络出现性能问题,对两端存储同步及数据库性能会有多大影响及应对措施?

答:这个一般是光纤抖动造成的,OTN 设备可以自动倒换,倒换协议要求时间为50ms以内,只要设计合理,是完全没有问题的。我相信各位都见过 AWR 报告中 IO 好几百毫秒的情况,那还是平均值。


12. SQL Server 和 Oracle 比起来,在企业级数据库建设方面最大的劣势是什么?是不是运行的效率方面?

答:SQL SERVER:效率、OS平台、锁机制、故障排错机制、生态环境,这些都是劣势。


13. 可能会踩到哪些坑?

答:机房间 RPR 倒换。在业务量大的系统中,光纤RPR倒换确实会引发一些问题,比较说LOG FILE SYNC 事件,ACTIVE SESSION 过高,这个业务量大是指超过 5000TPS 以上,这种数据库除了运营商,其它地主是非常少见的。就是算是业务量大的系统,通过合理的 OTN,FC SAN,主机参数设置,也是可以规避开的,因为协议规定是 50ms,加上上面各层,100ms 切换完成,数据库也是没有问题的。

Oracle 远程 RAC 打造双活数据中心 | 从容灾迈向双活案例分享_第1张图片


14. 您讲的业务量大,redo 每秒大概会有多少 MB 呢?

答:REDO 10MB /s,案例中提到的运营商客户运行一年半了,没有因为网络方面遇到过问题,大部分证券,银行,基金的每秒交易量,是运营商交易的10分之一以下,所以以上类似的双活系统是完全没有问题的。


15. 主机直接访问磁盘阵列“3.7-3.8ms”这个是怎么算出来的?

答:dd 测试的。


16. 双活 RAC 必须要用 wdm 链路?

答:土豪可以直接用多根裸光纤,非土豪用 WDM。


17. 跨机房的距离一般多少公里?

答:业务量非常小的系统,比如100TPS 左右,100公里问题不大。3000左右 TPS,30-50公里;10000以上 TPS,20公里。


18. asm 做镜像实现存储双活的可靠性如何?

答:本移动客户稳定运行了一年半。


19. 这个是深圳的价格嘛,我们四川恐怕要贵几百倍价格哟。

答:深圳的电信费用在国内是最贵的。


20. 远程 ASM 做镜像的 Oracle 版本要求是多少?

答:11.2.0.3.4 以上,个别 PSU 需要单独申请 PATCH.

因为11.2.0.3.4 之前有 BUG,会导致两个机房之间 SAN 链路断开时,所有数据库节点全部不可用。

在这个版本之后,我单独申请了one offpatch 解决这个问题,但并不是每个 psu 上有这个 patch。


21. vplex 加扩展的 rac,看老师的意思,非常不推荐呢

答:是的,VPLEX 有更合适的用处,就是中间件,MQ,TXT 文件接口等;不建议用在 ORACLE 远程 RAC上,完全是暴殄天物。


22. 如果不用 vplex,配置 voting(normal) 时是否需要三个存储

答:对的。


23. 请问这种架构的风险点在那儿呢?

答:没有专业的人实施。


24. 我们单位在使用 vplex metro,有什么办法可以防止出现存储踢a gi踢b?

答:没办法。

可以将3个votedisk都放在vplex上,这样会好一些,但没办法完全避免。因为ORACLE RAC 心跳IP网络与VPLEXWitness的IP网络不完全一致,当IP网络出现故障时,就有可能出现驱逐行为不一致的情况。

就算GI不踢B,由于B会锁5秒,每秒事务数超过1000的库,由于ACTIVE会话增多,很多能会撑爆B上数据库实例的会话数,并导致中间件队列撑爆,可能DB、中间件都需要重启。


25. 本地运行一个 RAC 节点,远端运行一个 RAC 节点,底层通过 VPLEX 同时写 LUN 数据2份。2个 RAC 同时写,会不会导致数据不一致?

答:如果是同一套 RAC 集群,有 ENQ TX 锁机制的,这是远程 RAC 相对于 OGG 的最大优势!!


26. 1000km 以上的 WDM 链路还有价值建立双活 RAC 嘛?

答:没有价值。用 ADG 或 OGG 吧,两地三中心是最适合用远程 RAC 的。


27. Fsfo 切的时候应用配置这些要改吧?

答:要的。


28. 10g 的 asm 不是也有 mirror 功能吗,为什么不能做 extend rac?

答:10G 的 ASM 不稳定。


29. 用 VPLEX,配置 voting(normal) 时不也需要三个 LUN 么?只不过这三个 LUN 是经过 VPLEX 虚拟化以后的 LUN。是这样吧?

答:是的。但怎么配置都解决不了我说的集群争斗的问题和锁5秒导致ACTIVE会话过高的问题。


30. 为啥不选择 ogg?

答:远程是同一套 RAC 集群,有 ENQ TX 锁机制的,不会有数据冲突,数据混乱,这是远程 RAC 相对于 OGG 的最大优势!!


31. 问题是两地三中心的距离是多远?

答:同城 RAC 要求 20-100KM,远程 ADG 全球任意地点。


32. 如果一套现有的 rac 系统使用 vplex 从单点存储变为双存储,环境是 rac10.2.0.4 这么做路径绑定会乱吗?比如原来的asm文件会有问题吗?

答:会乱的,应该有办法解决,但不建议用这种方案。

既然有这么大动作变更,不如直接升级11G用远程 RAC ASM 同步,腾出 VPLEX 做中间件、MQ、应用服务器容灾。这样解决了3个问题:

① 10G ASM 不稳定

② 10G 执行计划不稳定,原厂不再提供 PATCH 服务。

③ 解决中间件版本、应用接口数据、MQ 日志不同步等应用层诸多问题。


33. 双活 RAC 是不是不适合太远的距离?

答:不适合,100KM 以内才行。


34. 看架构图 asm 的双活是不需要第三方仲裁?只需要心跳吗?

答:需要的,这是逻辑图,很多细节没有。


35. 目前这种解决方案的案例多吗?

答:有几个,国外有上百个左右。


36. 100KM 太近,如果一颗外国原子弹爆炸了,双活、三活 RAC 也被洗白!

答:本方案不防原子弹,主要防止断电、UPS, 空调故障、存储故障,这些才是现实中最常见的。防原子弹需要 ADG,本方案与 ADG 不矛盾,也推荐客户同时上远程的 ADG。


37. 对于超过一定距离的机房,产生延迟是否会影响到双写。用 vplex 是否能解决该问题?

答:不解决,VPLEX 会增加 1-2ms 延时。


38. rac 所有节点 public 网线都拔掉会发生什么?

答:没试过,只试过拔单节点的PUBLIC,此情况应用可以正常切换。


39. 写延迟多大?

答:与距离有关,经测试,与按光速公式来计算的结果差不多。


40. 这个仲裁存储是要设置到 asm 中?需要多大空间?如果仲裁存储出问题后是否会发生脑裂?仲裁是否需要备份?

答:仲裁盘要 2GB 左右。仲裁存储出问题后,不会引起任何节点宕,不用备份。


41. 您以上提出的方案应该是针对同城的两机房,如果是两地三中心是否有解决之道?

答:EXTENDED RAC(ASM 同步)+ADG.


42. 也就是说如果超过一定距离而产生延迟,不论有无 VPLEX 都无法实施双活了?

答:是的,如果有人说能,那是骗你的。


43. 那 ogg 还有价值吗?

答:OGG 是一个很好的数据集成工具,用在不同平台的迁移,升级也不错。


44. votedisk 怎么设置,3个 votedisk,3个存储,一个存储一个?

答:是的。


45. 在 VPLEX 双活结构中,既然是一个 RAC 集群,那远端 RAC 节点网络与本地 RAC 节点网络之间,除了 OTN 组网外,现在一般还有哪些组网方式?

答:直接拉裸光纤。


46. 那有两个存储的机房死掉,另一个机房的 rac 节点只能访问一个 votedisk,也会重启?能起来?

答:建议两个存储的放在机房的不同楼层,万一出现整栋楼的故障,另外一个机房需要强制拉起来。


47. 如果一套现有的 rac 系统使用 vplex 从单点存储变为双存储,环境是 rac10.2.0.4 这么做路径绑定会乱吗?比如原来的 asm 文件会有问题吗?

答:会乱的,应该有办法解决,但不建议用这种方案。


48. 建议用什么方案?

答:建议用 11G+ASM+远程 RAC,宝贵的 VPLEX 留给中间件\MQ\乱七八糟的小应用吧。


希望大家多宣传远程 RAC,为中国的各种IT关键系统稳定尽一份力量。现在的中国,已经离不开IT系统,希望我们以后在办理各业务时少看到一些停机维护公告!IT系统的稳定,也是强国的基础和象征!

你可能感兴趣的:(Oracle,Database)