热门标签 | 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 最可靠的合作伙伴。




推荐阅读
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • 从Oracle安全移植到国产达梦数据库的DBA实践与攻略
    随着我国对信息安全和自主可控技术的重视,国产数据库在党政机关、军队和大型央企等行业中得到了快速应用。本文介绍了如何降低从Oracle到国产达梦数据库的技术门槛,保障用户现有业务系统投资。具体包括分析待移植系统、确定移植对象、数据迁移、PL/SQL移植、校验移植结果以及应用系统的测试和优化等步骤。同时提供了移植攻略,包括待移植系统分析和准备移植环境的方法。通过本文的实践与攻略,DBA可以更好地完成Oracle安全移植到国产达梦数据库的工作。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 企业数据应用挑战及元数据管理的重要性
    本文主要介绍了企业在日常经营管理过程中面临的数据应用挑战,包括数据找不到、数据读不懂、数据不可信等问题。针对这些挑战,通过元数据管理可以实现数据的可见、可懂、可用,帮助业务快速获取所需数据。文章提出了“灵魂”三问——元数据是什么、有什么用、又该怎么管,强调了元数据管理在企业数据治理中的基础和前提作用。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • 如何利用 Myflash 解析 binlog ?
    本文主要介绍了对Myflash的测试,从准备测试环境到利用Myflash解析binl ... [详细]
  • MySQL数据库锁机制及其应用(数据库锁的概念)
    本文介绍了MySQL数据库锁机制及其应用。数据库锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,数据是一种供许多用户共享的资源,如何保证数据并发访问的一致性和有效性是数据库必须解决的问题。MySQL的锁机制相对简单,不同的存储引擎支持不同的锁机制,主要包括表级锁、行级锁和页面锁。本文详细介绍了MySQL表级锁的锁模式和特点,以及行级锁和页面锁的特点和应用场景。同时还讨论了锁冲突对数据库并发访问性能的影响。 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
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社区 版权所有