锋盈数科-知识库 Logo
首页
软件开发
计算机基础
Hello Halo
新手必读
关于本知识库
登录 →
锋盈数科-知识库 Logo
首页 软件开发 计算机基础 Hello Halo 新手必读 关于本知识库
登录
  1. 首页
  2. IT运维
  3. 基于 Oracle RAC 实现双活的关键问题和解决方案

基于 Oracle RAC 实现双活的关键问题和解决方案

0
  • IT运维
  • 发布于 2024-11-06
  • 11 次阅读
黄健
黄健

1.架构分析

1.1基于ASM冗余设计架构

图1.1基于ASM冗余设计实现的Oracle RAC

  • 存储层实现SAN网络跨数据中心级联,使双数据中心能够实现整体SAN网络。

  • 网络层实现二层打通,SCAN IP可以跨数据中心浮动。

  • 应用层实现跨数据中心RAC,每一个数据中心分别有一个实例节点。

  • Oracle ASM存储层,数据磁盘组需要实现基于双数据中心存储卷的双镜像冗余策略,OCR仲裁磁盘组需要实现基于双数据中心存储卷以及第三方站点网络存储卷的三块儿磁盘高可用策略。

1.2基于存储集群实现的架构

图1.2基于存储集群实现的架构

  • 存储层借助存储虚拟化产品实现双数据中心以及第三方仲裁站点组成的存储集群,使得存储可以提供给应用层分布式虚拟磁盘,最终让应用对存储层的逻辑映射没有任何感知。

  • 网络层实现二层打通,SCAN IP可以跨数据中心浮动。

  • 应用层实现跨数据中心RAC,每一个数据中心分别有一个实例节点。

  • Oracle ASM存储层,磁盘组不需要做任何特殊冗余配置,只需要将存储层提供的分布式虚拟磁盘看做是本地共享磁盘进行安装配置即可。


2.实现难度分析

2.1 架构复杂度

  • 架构一的复杂度在于ASM层的设计。ORACLE RAC实例节点看到的共享盘是基于双中心存储实现的镜像策略,所有IO的读写分发是由ASM本身的冗余算法规则来决定的,DBA不仅仅要根据磁盘情况来设计合理的Failure Group,而且需要结合第三方站点的网络存储卷来合理设计仲裁磁盘组的分配。更重要的是需要结合实际的网络环境指标(延时、稳定性等)进行复杂的性能、稳定性、灾难测试等来调整ASM的一些IO参数。

  • 架构一的复杂度在于整体架构的复杂度。例如仲裁一致性问题,是指双中心之间的存储集群和数据库RAC集群的仲裁结果是否能保证一致性。存储集群是靠仲裁站点分别于两个站点之间的网络连通性来判定站点故障。而数据库集群是通过以太网心跳和OCR仲裁盘来做数据库仲裁。而数据库的OCR仲裁盘是存储集群提供的分布式共享卷。二者仲裁时的一致性如何保障是非常重要的一个问题。假设在发生站点级别故障时,数据库集群首先根据网络故障触发仲裁,判定站点A的节点存活。而存储随后再发生存储集群的仲裁,这个时候如果根据仲裁站点判定的结果恰恰仲裁委站点B的节点存活。那么数据库集群整体就会宕掉,这对于业务来讲就是一个灾难。

2.2 落地成本

  • 从实现的基本条件来看,两种架构的实现都会依赖双中心的二层打通。双中心的波分设备、以太转换设备、光纤链路租用就是必不可少的条件了。包括其购置成本和日后的运维成本等。这是非常可观的一项成本预算。

  • 从存储层的架构组成来看,架构一不需要存储层增加任何其他设备成本及运维成本。但是架构二需要依赖存储层的虚拟化网关产品来实现存储虚拟化集群,无疑这需要增加相应的购置成本和相应的运维成本。尤其注意存储集群产品是否有容量许可成本问题。

  • 从第三点的仲裁站点成本来看,两种方案都需要第三点的仲裁,区别在于架构一需要的是NAS存储,而架构二需要的基于以太网的计算资源来配置仲裁虚拟机。投入成本没有什么差异。

  • 从Oracle运维成本来看,架构一对DBA的要求非常苛刻,需要DBA不仅仅能够深知其中的原理,而且需要对性能的分析有较深的造诣,从而保障在复杂的双中心联动环境下各种复杂情况下的性能及稳定性变动有快速和准确的判断和处理能力。架构二对DBA的要求没有特殊的苛刻要求但是需要增加对存储集群的专业维护成本。

2.3 关键问题及解决方案

2.3.1针对架构二的仲裁一致性问题

在这个问题上,风险发生的引发点有两个:数据库和集群的仲裁触发以及仲裁过程的时间顺序发生紊乱;资源被1:1割裂之后的默认仲裁策略不一致。也就是说,只要控制这两个引发点,那么这个问题从理论上也就避免了。对于第一个引发点来讲,实际上存储集群的默认仲裁触发时间会是15秒左右,而数据库仲裁触发的控制参数由misscount这个参数来决定,所以只要我们将misscount这个参数调整到45秒之后,也就是说理论上绝对保障存储集群仲裁在前,而数据库仲裁在后,那么第一个引发点就没有了。对于第二个引发点来讲,假设两站点节点资源对等,仲裁选票同样对等的情况下,存储集群会有一个默认的Winner策略,同样在这种情况下数据库集群也有一个默认仲裁策略:选择实例号小的集群存活。只要我们保证这两个策略结果的一致性,那么第二个引发点也就不存在了。

2.3.2链路稳定状况不可控

这个问题是两种架构都面临的问题。主要表现为两个方面:链路稳定状况不可控;延时指标不可控。因为双中心之间的链路是通过租用运营商的裸光纤链路实现的,那么这其中会经历很多的中继设备及节点。无论从管理上还是从技术把控上都是金融企业自身不可控制的因素。假设双中心间链路延时指标不稳定,也就是说数据库节点之间私网传输的延时会经常出现长延时情况,这势必导致这种延时会加倍放大到数据库节点之间的读写热点竞争上。由于数据库集群之间的数据传输量非常大(缓存、锁、心跳等),在读写热点相对突出的业务上,轻则导致数据库读写性能灾难,重则导致数据库节点直接处于僵死状态。另外,链路的不稳定会导致存储链路频繁切换,甚至会导致集群仲裁频繁发生,这对于业务连续性更是一个灾难。

对于这个问题来讲,就目前金融行业的传统数据架构来讲,并没有一个十足的解决方案。我们只能通过以下措施来减少这种问题带给我们的风险。

一、业务层面需要进行拆分重组:按照IO特点进行合理拆分,将读写业务尽量分布于不同节点上,减少节点间的锁竞争。按照业务将数据库表进行分区,避免在数据库写上的数据热点块儿。例如,对于银行核心系统来讲,尤其是要将批量业务和联机业务区分对待,批量业务的热点以及数据量非常之巨大,所以一定要将批量业务的数据库读写放在单边实现。对于联机业务来讲可以根据热点状况以及链路质量评测结果可以尝试实现双中心同时读写,但是本文建议对于这种重量级的业务还是要从业务层尽量实现应用上的读写分离,或者在应用层双中心部署而在数据库层将数据引到单边来做。

二、双中心间通讯的整体控制,具体包括对通讯带宽的优先级管理、对通讯的实时监控和控制、对跨中心数据传输的严格策略把控。例如:优先保障存储和数据库通讯的优先级和带宽,严格的规则算法和优先级限定VMOTION、DRS等行为的跨中心随意性,从LTM负载分发上尽可能保障正常情况下纵向IO的单中心效率策略,故障情况下保障跨中心访问的科学性。DWDM上设置双中心间通讯带宽的逻辑隔离以及实时可控。

2.3.3存储网络故障泛滥

这是两种架构都会面临的问题,只是架构一可能性相对高一些。

如果我们把两个中心的SAN环境整合为一张大网,物理上没有任何隔离的大网,那么可能会因为局部的存储网络故障而波及到整个存储网络。尽管我们通过SAN交换机上的逻辑隔离能够解决大部分的安全问题,但是这样的风险毕竟还是存在的。

所以我们可以通过对数据中心内部SAN环境前后物理隔离,双中心之间靠专一SAN交换机实现存储后端网络的联通来解决该问题。这样的话,单中心内前段SAN环境故障不会波及存储后端,更不会波及整个基础架构的存储网络。

2.3.4串联深度带来的性能问题

这个问题是针对架构二的问题。

架构深度越深,那么IO的性能就会越差,因为IO每经过一层设备就会有一定的延时消耗,纵向深度越深经历的设备越多,那么IO的延时也就越高。如果我们的架构在纵向上越复杂,那么这个问题应该说从本质上是无法消除的,只能通过一定的方法来减少和优化。

从存储层来看,一般存储侧在对物理卷进行虚拟化的时候都会有几种策略。为了增加管理的灵活性及扩展性,虚拟化的时候可能会经过多层映射。另外一种策略是为了提高性能,在虚拟化的时候尽量较少映射。我们在规划存储卷的时候,尽量采用后一种策略。例如VPLEX就会有(1:1map、Raid等策略),我们可以选择1:1map这种策略,仅仅利用它的镜像聚合,而舍弃它的灵活伸缩特性。

原题:基于Oracle RAC实现双活方案的分析 如有任何问题,可点击文末 阅读原文,到社区原文下评论交流

觉得本文有用,请转发或点击"在看”,让更多同行看到


资料/文章推荐:

  • Oracle RAC/ADG/OGG 双活方案比较 \| 资料

  • Oracle19c RAC for Centos7.6 详细安装文档

  • Oracle RAC 资料大全


欢迎关注社区 “双活” 技术主题 ,将会不断更新优质资料、文章。地址:

http://www.talkwithtrend.com/Topic/71


下载 twt 社区客户端 APP

长按识别二维码即可下载

或到应用商店搜索"twt”


长按二维码关注公众号

*本公众号所发布内容仅代表作者观点,不代表社区立场

原文链接: http://mp.weixin.qq.com/s?__biz=MjM5NTk0MTM1Mw==&mid=2650649292&idx=3&sn=2dd2d6915b62d7de39dbdfd54a477336&chksm=bef9cc4a898e455c8ed5c8c2d59732cea9cf94d74d860a5c70c1cd208c1285fd65be71e08357&scene=21#wechat_redirect

标签: #运维 80
相关文章

修改注册表停用 Windows 资讯和兴趣服务教程 2025-03-14 18:02

修改注册表停用 Windows 资讯和兴趣服务教程 一、自动修改注册表(适合不想手动操作的用户)

核心交换机和普通交换机有何区别? 2024-11-18 14:42

提起核心交换机与普通交换机有什么区别?相信很多朋友都有点迷惑,今天我们一起来了解下。 核心交换机并不是交换机的一种类型,而是放在核心层(网络主干部分)的交换机叫核心交换机。 一般大型企业网络和网吧需要购买核心交换机来实现强大的网络扩展能力,以保护原有的投资,电脑达到一定数量才会要用上核心交换机,而基

什么是公网ip?什么是内网ip?为什么ip地址通常以192.168开头? 2024-11-18 14:42

我们做弱电的,与ip地址接触最多,无论是弱电的哪方面,都需要跟ip地址打交道,通常我们也会经常听到公网、内网?那什么是公网ip地址呢?什么是私网ip地址呢?为什么我们常见到的ip地址以192.168开头呢?我们今天来了解下。 内、外网是相对于防火墙而言的,在防火墙内部叫做内网,反之就是外网。在一定程

海康威视系列硬盘录像机常用设置与操作 2024-11-18 14:42

如何使用遥控? 对准DVR面板,在遥控器上操作 A、按设备键 B、输入设备号88(默认设备号为88,可在主菜单-本地显示进行修改) C、按确认键 如果遥控器配置成功,硬盘录像机前面板上的状态灯变为绿色。再次按下设备键,停止遥控控制。每次DVR重新上电后,遥控器需再次配置方可使用。 为什么新机器开机后

跳线、尾线区别在哪里?一张图弄清楚

跳线、尾线区别在哪里?一张图弄清楚 2024-11-11 10:12

跳纤与尾纤有何区别?都各自如何应用? 用在哪里?这几天在vip群里有几位朋友提到。 问到相关的内容,本期我们一起来总结这块。 首先我们来看这张图: 在终端盒中,他们的应用一目了然。 带着这张图,我们再来详解他们各自的用途与区别。 一、什么是光纤跳线? 光纤跳线又称光纤连接器,是指光缆两端都装上连接器

智能化施工常用工具总结

智能化施工常用工具总结 2024-11-11 10:12

1 智能化施工工具 一般维护运维建议手动工具套装 施工现场需要的施工机械 三级配电箱 2. 一级配电箱就是从变压器引入三相电源,地线,零线。二级配电箱是从一级配电箱电源线至临时用电(总包负责),智能化专业承包一般都是三级配电箱,三级配电箱是电器设备自身的控制柜。 2

目录

IT 外包服务商

  • 意见投递
  • zyf6619

软件开发应用

主菜单

  • 首页
  • 软件开发
  • 计算机基础
  • Hello Halo
  • 新手必读
  • 关于本知识库
Copyright © 2024 your company All Rights Reserved. Powered by Halo.