热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

2022年,为何再谈一次双活ExtendedRAC

2022年,重案王探长再次回答双活架构的优劣,和19c数据库的搭配下,怎么去实施获得预

好久没发布分享,主要是因为冬天的时候身体有恙,行动不便,难受...

所以等了好久,今天再老生常谈Oracle的RAC双活方案吧~


为啥要谈这“古董”? 

我上一次参加双活项目估计是5年以前。随着数据库架构逐渐的云化,我一直把双活归类为2代架构的重量级方案。重量级=投资大,架构复杂,投入人力多,运维复杂度增加。


我窃以为该技术已经走入历史,但是原谅我忽略各硬件厂商的努力,存储和网络的发展日新月异。从去年到今天,没想到我还去用户现场讲过双活,客户依然在询问,双活方案对比ADG容灾?双活对比一体机?孰优孰劣?双活的风险在哪里?所以我就一次性,再次回答。


关于双活的技术,请各位翻历史文章,从《VPLEX VS ASM》,当年基本就把双活分析得透彻。另外还有,

如果想听探长,实地探案,请预约:-)

valen.wang@


本文为杂谈,不谈技术细节。

 



首先我绝对不是要否定双活方案,任何存在即合理,技术可以造福企业,再不济那技术可以拉动GDP。都是对社会有利的发展。


双活的目的,是在发生站点彻底停止运行的大事件的时候,提供备用站点立刻接管失败业务的场景,RTO=0,RPO=0,的完美方案


其实我也不知道,这个架构是O记最先发明的?还是存储厂商提出来的?但是,这么重点级别投资,在O记,是资料最少的...







  • 双活优点在在于,这个存储的远距离复制,提供了关键作用,双份data,实时保护,实时一致性访问。



  • 缺点也在于距离,这个RAC的心跳,跨几十公里,带来了集群性能的下降,集群稳定性的下降,包括写入性能的下降,包括存储cluster和RAC的协作问题等, 计算能力扩展性极差。这一点,我相信在卖的时候,storage vendor是不会深入提及的。


双活方案有核心业务的成功的案例吗?有!


凡是对双活架构有充分深入的了解,投入大量的资金,依足双活建设规范,选择正确的实施团队的项目,是有成功案例的。


但在双活实施过程之中,一旦“省”了,那么祈祷神佛保佑,不要发生故障,尤其是站点级故障。恐怕Both alive 变 both dead,这对于DBA们来说,和管理层来说,这是可怕的故障。

下面说几个案例:

先天不足,租用的光纤网络月月不稳定。

实施不足的,应该是被当成是一个普通RAC实施的。



这个故障你说为啥会发生?挖掘机这个不可预测,但是在实施过程中,没有认真评估Oracle双活的数据库版本和补丁,没有按照最佳实践配置,上线前缺乏“数据库双活混沌测试场景测试”,缺乏跨中心故障演练...


极有可能听信片面之词“在我们的设备和软件下,这就是一套普通的RAC安装”,完全不需要专家。


当然也有做的好的

性能,稳定性,都不是问题,而且承载核心业务。GC每秒大于120M,逻辑读大约300w/秒,峰值超过千万,偶尔光纤抖动,个别实例重启,大概一年一次,很少。采购的是商业双活软件,O原厂实施全程参与。


还有一种,建设以后,只承载了一些几乎没有负载的业务。那也好像没啥问题。出了问题,也没啥影响。

还有一种,远程RAC实例只做容灾备用,不启动。曲线容灾, 姑且算事。



随着时间的推移,时空的伴随,我们见到故事是不断在轮回,很多投资大的双活项目下马了,新的双活项目又开始了。存储和网络厂商还在该技术上加码,技术越来越好了,这个技术的发展的确值得关注。


  • 那么关键问题,双活架构,在今天,企业也开始逐渐云化的世界里面,还有价值吗?

  • 或者是Oracle发展到19c,21c,双活这种架构,是更加适配了,还是不兼容了?




以前有一个银行的科技副行长曾经对我感叹过,“行方一定要懂技术,否则就被你们各种牵着鼻子走” ,乙方听了,很囧。

So这里本文讨论双活是站在,专业服务的角度去分析,硬件,软件没有一点利益掺杂,所以尽量给出中肯的建议。


  1. 如果核心要上双活,首先认真梳理业务需求,将有双活双中心需求(RTO,RPO=0)的核心数据库部署到双活环境,根据投资的规模,尽量保证资源的冗余,只部署的确有黄金SLA业务需求的核心业务上去。宁可浪费点存储,也要减少些风险。在过去,敢于全核心业务上双活企业,都是时代的先驱,技术上勇者,本探长深表敬意。

  2. 如果新系统双活选择的数据库版本是12c,19c,甚至21c,建议规范实施。例如可以参照《O记双活实施规范》,

从:

Step by Step

双活MMA架构分析和设计

多租户架构分析和设计(必要的,后面有讲)

双活数据库最佳实践配置

双活数据库版本选择和补丁分析

双活数据库性能基准测试,最大压力测试

双活数据库混沌场景测试(破坏性场景测试)

双活站点故障测试

双活应急故障演练规范

双活资源管理器设计

双活架构均衡负载设计

双活性能监控和分析

。。。etc

打造一个稳定可靠的双活数据库系统!


特别是19c数据库,它的设计目标是同一站点里面的数据库云化,跨站点的容灾,推荐的方案还是ADG,通过far sync等方案来实现0数据库丢失,通过DG borker等手段来实现快速切换。但是19c的数据库的进一步优化和发展,它本身的特性优化,就给双活架构带来了改进。

如下图所示:19c RAC主要的提升在于高可用,故障透明,性能提升。其中高可用提升,性能提升,这些代码级的优化都是利于双活。

这里我们简单说几点:


困扰双活的一个问题是GC,集群之间的数据库交换,跨几十公里的数据交换。这个在19c,获得代码的优化,LMS进程粒度更细,不同的进程处理不同队列长度的数据,避免单点阻塞。

亦可以利用PDB+Service做业务隔离,在A站点部署业务1,在B站点部署业务2,既减少了GC,同时业务1,2又获得了几乎等同双中心活动的高可用性。这叫做鱼和熊掌兼得。这就是前面大家可能困惑,为啥双活建议用多租户!



但是,我们说了,官方的目标里面也许双活不是重点,这也是目前几乎没有官方资料的原因。那么我们在19c,谈几个和双活架构,不太匹配的特性。


  • TAC,透明应用连续性,故障透明,是云化数据库的关键指标。当运行在A站点的10000个进程要switch over到B站点,而且要不报错,透明接管。这个10000的进程的事务状态,如何正常快速通过几十公里的光纤同步过去。这个,嗯,没验证过?

  • 弹性伸缩,又是云化的关键特性,弹性伸缩的关键是高质量的心跳网络,只有在高质量的网络下,比如聚合无损心跳网络,infiniband下,我们可以获得高质量的弹性伸缩。如果是几十公里光纤,出发点就是告诉我们,性能要下降,何谈弹性。


  • Buddy recovery,通过内存来加速恢复,那么数据库也是从私网传输,这个特性,在双活下,嗯... 还是走redo log吧。

等等...

所以在实施双活的过程中,技术特性一定是有取舍的,满足需求为佳,勿贪多嚼不烂,带来隐患。


总之就是两个核心,

第一,做好双活架构和您的投资/业务的抉择, 

第二实施双活架构中,实施团队要对数据库特性的深入了解和规范化实施,

做好后,必然给您的企业带来收益。


复杂架构的实施过程中,人力绝对是最重要的,曾经见过一个医院案例,硬件投资几千万级,实施200w包给某某科技公司。上线后发现,连数据块读本地实例的基本参数都没有设置,这其实就是根本不懂。 故事里面的驱动力太复杂,也是存在即合理。但是希望本文,给所有准备挽起袖子要大搞特搞的DBA,技术经理,CTO一些启发和建议。

 


最后打一个广告,A*S团队是您实施19c,21c 最可靠的合作伙伴。




推荐阅读
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • Ralph的Kubernetes进阶之旅:集群架构与对象解析
    本文深入探讨了Kubernetes集群的架构和核心对象,详细介绍了Pod、Service、Volume等基本组件,以及更高层次的抽象如Deployment、StatefulSet等,帮助读者全面理解Kubernetes的工作原理。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
  • 深入解析Serverless架构模式
    本文将详细介绍Serverless架构模式的核心概念、工作原理及其优势。通过对比传统架构,探讨Serverless如何简化应用开发与运维流程,并介绍当前主流的Serverless平台。 ... [详细]
  • 本文探讨了现代分布式架构的多样性,包括高并发、多活数据中心、容器化、微服务、高可用性和弹性架构等,并介绍了与这些架构相关的重要管理技术,如DevOps、应用监控和自动化运维。文章还深入分析了分布式系统的核心概念、主要用途及类型,同时对比了单体应用与分布式服务化的优缺点。 ... [详细]
  • Spring Cloud学习指南:深入理解微服务架构
    本文介绍了微服务架构的基本概念及其在Spring Cloud中的实现。讨论了微服务架构的主要优势,如简化开发和维护、快速启动、灵活的技术栈选择以及按需扩展的能力。同时,也探讨了微服务架构面临的挑战,包括较高的运维要求、分布式系统的复杂性、接口调整的成本等问题。最后,文章提出了实施微服务时应遵循的设计原则。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 本文探讨了MariaDB在当前数据库市场中的地位和挑战,分析其可能面临的困境,并提出了对未来发展的几点看法。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 本文探讨了2012年4月期间,淘宝在技术架构上的关键数据和发展历程。涵盖了从早期PHP到Java的转型,以及在分布式计算、存储和网络流量管理方面的创新。 ... [详细]
  • Kubernetes 持久化存储与数据卷详解
    本文深入探讨 Kubernetes 中持久化存储的使用场景、PV/PVC/StorageClass 的基本操作及其实现原理,旨在帮助读者理解如何高效管理容器化应用的数据持久化需求。 ... [详细]
  • 福克斯新闻数据库配置失误导致1300万条敏感记录泄露
    由于数据库配置错误,福克斯新闻暴露了一个58GB的未受保护数据库,其中包含约1300万条网络内容管理记录。任何互联网用户都可以访问这些数据,引发了严重的安全风险。 ... [详细]
  • 本文详细介绍了 Kubernetes 集群管理工具 kubectl 的基本使用方法,涵盖了一系列常用的命令及其应用场景,旨在帮助初学者快速掌握 kubectl 的基本操作。 ... [详细]
author-avatar
真理往往是废话
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有