数据库双活解决方案考察项基于传统IOE架构的ExtendedRAC(ORACLE原厂)1、双活模式读/写---只读、变相的读/写---读/写2、整体架构硬件平台最少配备:4台oracle数据库服务器2台独立存储设备及4台光交机1台位于第三站点的仲裁服务器(挂载仲裁盘)网络:以太网路由及交换设备则包括广域网互联设备(10KM以上使用波分复用设备)、每个站点的核心、汇聚、接入层设备3、存储类型每个站点均配备统一存储。整个双活中心仅有一套数据库(一个磁盘组内须创建2个及以上故障组,故障组分别在不同的站点)4、数据冗余度两个站点最多可设置3份副本,一般设为双份。副本数通过ASM磁盘组冗余级别参数来控制。5、站点间数据镜像不同站点之间的副本通过ASM镜像功能实现单向复制,复制的原理:一个站点的写操作将同时发给另一个站点的副本执行,属同步模式的复制。(理论上可双向,但实际案例中往往人为控制成单向)(原厂提供参考数据:修改远端数据块的延时在10MS以上)6、心跳网络(类型/带宽)1、网络心跳走以太网,要求带宽至少1G,延时在毫秒级2、磁盘心跳走裸纤,要求带宽至少10G;7、站点间距限制(指光纤介质长度)理论值:25KM,但全球实际案例的平均间距仅为4KM,超过该距离性能会随着距离增加呈线性衰减。8、故障切换(模式耗时)以两种典型故障为例:1、两边数据库均承载业务,任何一边发生故障,则由另一边承载所有业务,无须进行主备站点切换。故障站点原先承载的用户会话在几分钟内由其他存活节点接管,体验上会有一些卡顿。2、若站点间的心跳线中断,则由第三站点的仲裁盘决定驱逐哪个站点,哪个站点存活。被驱逐站点原先承载的用户在体验上会有几分钟的卡顿。9、解决方案潜在的风险主要有2种风险:1、无法解决两个站点间业务数据不一致问题,除了实验室的现实案例极少。常见解决方案包括:①应用分割。如财务系统只在A站点写入,人资系统只在B站点写入,两边互为镜像,变相实现“读/写-读/写”模式,对1套应用来说仍是“读/写-只读”模式);②B站点仅开放只读功能,实现“读/写-只读”模式;③利用oracle12c版本新功能,自动将B站点的写操作转移到A站点的数据库,统一在A站写入。2、站点间的远距离对数据库读写性能影响大。站点间距离越长,IO性能瓶颈越凸显,只能限制在较短距离内。即使解决网络时延问题也无法解决锁的问题——修改数据块时不但锁本地块还要锁远程镜像块,加锁时间长极易出现站点间资源争用,性能下降,甚至死锁。10、实施过程对在运业务的影响从数据库原理分析:为在运系统搭建的数据库集群,磁盘组冗余级别通常设置为external级,即集群内不做ASM镜像。为了实现双活,此参数要做相应更改。已存在的磁盘组不能改变其冗余级别,只能重新创建磁盘组,将其冗余级别设置为匹配双活模式的参数。因此无论采用哪一种解决方案,都需要停止数据库服务进行切换,需申请停机窗口,停机时间短暂。同步方法:在原有数据库服务器上创建一个新库,其磁盘组模式设置为双活模式要求的normal或high。借助数据库复制工具使原库与新库保持同步(同步过程业务不中断),后续申请停机窗口进行新旧两库切换,新库作为双活中心的数据库。同步过程与另外一个站点加入ExtendedRAC集群的过程无需中断业务11、后期运维内容1、ExtenedRAC与本地RAC原理相同,每个站点单独维护一套RAC子集群。2、ExtenedRAC国内案例很少,能获得的厂商技术支持力度相对较小。12、测试局限性须满足以下前提才有开展测试的必要:1、以营销系统为例,须做业务垂直分离,才能实现“读写-读写”双活模式。若业务不分离,只能考虑“读写-只读”模式。2、站点间距离不能超过4KM。相关技术资料ORACLE原厂白皮书\\10.194.50.44\平台运维科\8-其它\平台组台帐\双活技术\oracle基于VPLEXMetro的ExtendedRAC(EMC公司)读/写---读/写硬件平台最少配备:2台EMCVPLEX设备2台独立存储设备光纤网络交换设备2台(用于连接VPLEX设备、服务器、存储设备)4台Oracle数据库服务器1台VPLEXWitness仲裁服务器1台位于第三站点的仲裁服务器(挂载仲裁盘)网络:以太网路由及交换设备则包括广域网互联设备(10KM以上使用波分复用设备)、每个站点的核心、汇聚、接入层设备每个站点均配备统一存储。整个双活中心仅有一套数据库(一个磁盘组内须创建2个及以上故障组,故障组分别在不同的站点)双份,数据在所有VPLEX存储上做条带化。由vplex实现数据冗余,一般不再设置ASM磁盘组冗余级别。不同站点之间的副本利用vplexmetro存储复制技术实现双向复制,任何站点的写操作将同时发给另一个站点的副本执行,属于同步模式的复制。(双活解决方案不提供异步模式,该模式用于传统容灾)(参考实际案例数据:经过VPLEX设备,会比第一种方案的延时还增加1MS)ORACLERAC:1、网络心跳走以太网,要求带宽至少1G,延时在毫秒级;2、磁盘心跳走裸纤,要求带宽至少10G;VPLEX:3、存储网络至少需8G链路;在本方案中RAC的磁盘心跳走VPLEX存储网络,带宽至少要满足10G理论值:100km,网络延迟不超过5ms;实际案例:oracle官方建议不超过10KM,网络延迟不能超过1ms;超过该距离性能会随着距离增加呈线性衰减。超过10KM要借助波分复用设备来延伸距离。区分数据库集群与存储集群两个层面:1、数据库集群的切换机制与本地RAC相同,见第一种方案描述;2、VPLEX集群:两边的vplex存储均承载业务,任何一边的设备发生故障,则由另一边承载所有业务,无须进行主备站点切换。故障站点原承载用户在体验上几乎没有卡顿(秒级完成切换)。根据国内多个行业的实施案例看,收集了种发生频率较高的风险:一、性能方面1、站点间的网络延时对数据库读写性能影响大,因此对时延有较高要求。通常超过1ms,易产生性能瓶颈(深圳同行故障案例:相距17公里的两个站点间产生大量GC相关的等待事件导致某6+1系统数据库挂死)2、支持的用户并发数有限,无法满足应用高并发要求,极易引发性能瓶颈。(普遍案例、实测结果)二、功能方面VPLEX镜像功能引发数据库集群故障。(上海运营商案例:两个站点完成数据镜像后,因数据不一致导致oracleCRS无法启动;三、可靠性方面1、RAC的心跳P网络与vplexwitness的心跳IP网络互为独立,各有一套仲裁机制。当任何心跳网络出现中断,有可能出现仲裁结果不一致的情况(理论上多达15种,原因复杂),对应用来说两个站点都无法访问,双活变成双死。(运营商案例,由负责广西移动VPLEX双活项目的技术人员提供)2、两个站点的VPLEX设备构成一个集群,当A站点的VPLEX设备发生故障,B站点的VPLEX设备会有5秒的IO锁定期。若是一个TPS上万的大型应用系统数据库,则解锁后B站数据库要承载5万个会话,有可能因负载过重导致不可用,双活变成双死。(运营商案例,由负责广西移动VPLEX双活项目的技术人员提供)基于上述案例,oracle原厂建议不采用此方案,多一层双活机制反而增加了中间的故障点。区分两种情况:①若要修改RAC集群的磁盘组冗余级别,增加ASM镜像,需要停止数据库服务进行切换,需申请停机窗口,停机时间短暂。同步方法:在原有数据库服务器上创建一个新库,其磁盘组模式设置为双活模式要求的normal或high。借助VPLEX存储复制功能使原库与新库保持同步,然后申请停机窗口进行新旧两库切换,新库作为双活中心的数据库。同步过程与另外一个站点加入ExtendedRAC集群的过程无需中断业务。②保持RAC集群的磁盘组冗余级别=external,VPLEX建议修改网络心跳和磁盘心跳超时参数,需要重启数据库服务,需申请停机窗口,停机时间短暂。同步过程与另外一个站点加入ExtendedRAC集群的过程无需中断业务。1、ExtenedRAC与本地RAC原理相同,每个站点单独维护一套RAC子集群。2、vplex设备及相关管理软件需要专人运维3、因vplex集群与oracle集群有各自一套机制,一旦发生故障,原因分析难度大,需各厂商联合排查。根据第9项分析该解决方案的风险点,相应地,存在以下测试局限性导致测试有效性低,难以浮现潜在的缺陷。1、用应用性能测试工具模拟的场景仿真程度有限,无法模拟真实用户场景中发生的所有核心业务,测试阶段不一定能重现GC等待事件导致数据库集群挂死。可考虑使用数据库专门的压力测试工具。2、针对功能风险和可靠性风险,由于触发原因复杂,现实中很难构建测试场景去验证,测试阶段不一定能重现BUG。EMC原厂白皮书\\10.194.50.44\平台运维科\8-其它\平台组台帐\双活技术\EMC基于国产一体机构建ExtendedRAC优势读/写---读/写硬件平台最少配备:4台oracle数据库服务器(X86架构)6台存储服务器(X86架构)4台本地Infiniband(简称IB)交换机、2台长距IB交换机、若干IB卡与线缆1台位于第三站点的仲裁服务器(挂载仲裁盘)网络:以太网路由及交换设备则包括广域网互联设备(10KM以上使用波分复用设备)、每个站点的核心、汇聚设备、接入层设备每个站点配备分布式存储(X86服务器插SSD、闪盘),整个双活中心仅有一套数据库(一个磁盘组内须创建2个及以上故障组,故障组分别在不同的站点)两个站点最多可设置3份副本,一般设为双份。副本数通过ASM磁盘组冗余级别参数来控制。不同故障组之间的副本通过ASM镜像功能实现双向复制,同步的原理:任何站点的写操作将同时发给另一个站点的副本执行,属同步模式的复制。(参考测试数据:修改远端数据块的延时在1MS以下,相当于本地RAC)★第三种方案的IO性能最佳,至少10倍差距网络心跳和磁盘心跳都走IB网络,带宽达40-56Gbps,可实现端到端延迟200ns。★IB网络比传统以太网的延时低很多理论值:100km公里实际案例:80KM。超过10KM要借助波分复用设备来延伸距离。经实测,80KM网络RTT值在0.45-0.5ms参考数值:100公里真空RTT=0.7ms★依托IB设备的扩展RAC能支持更长距离数据库集群的切换机制与本地RAC相同,见第一种方案的描述。根据国内实施案例,主要有4种风险:1、整体架构中引入了存储服务器,X86服务器可能发生软硬件故障。相对传统的统一存储设备,故障几率高一些。2、双活中心6个存储节点最多允许任意2个存储节点同时发生故障,如果超过2个节点也不影响extendedrac运行,但影响副本份数,需做重平衡调整冗余度。3、分布式存储容量满的时候,支持两种方式扩容:增加存储节点;更换规格更大的单盘。若采用第二种方式则需停止存储服务器进行操作,选择业务低峰期即可操作,无须中断业务。4、利用IB网络和本地分布式存储技术实现超高IO性能,极大降低时延,有效避免数据不一致和站点间资源争用的问题。数据不一致和死锁发生的几率极小。5、参考湖北电网、浙江移动、银行客户案例,截止目前暂未获知故障事件。★前两种方案的潜在风险大,第三种方案风险小且有应对措施。特别在数据一致性问题方面,前两种方案不能避免,第三种方案暂未发现有不一致问题及站点间死锁问题。从数据库原理分析:为在运系统搭建的数据库集群,磁盘组冗余级别通常设置为external级,即在单个数据中心内部不做ASM镜像。为了实现双活,此参数要做相应更改。已存在的磁盘组不能改变其冗余级别,只能重新创建磁盘组,将其冗余级别设置为匹配双活模式的参数。因此无论采用哪一种解决方案,都需要停止数据库服务进行切换,需申请停机窗口,停机时间短暂。同步方法:在一体机硬件架构上创建新的数据库,其磁盘组模式设置为双活模式要求的normal或high。借助数据库复制工具使原库与新库保持同步,后续申请停机窗口进行新旧两库切换,新库作为双活中心的数据库。同步过程与另外一个站点加入ExtendedRAC集群的过程无需中断业务1、Ex