开发者社区> 问答> 正文

DTS的异构多活主要是指什么?

DTS的异构多活主要是指什么?

展开
收起
游客qzzytmszf3zhq 2021-12-12 19:47:30 399 0
1 条回答
写回答
取消 提交回答
  • 其实在这个场景之下还有一个比较大的问题就是两边数据库都可以写入,如何去判断数据是否一致,当数据出现不一致时如何判断出来,以及在判断出来之后又应该如何去进行修复。而且如果没有这样的修复能力,一旦数据出现了问题,损失将是无法挽回的。在今天,阿里巴巴的淘宝、天猫以及支付宝的交易都是搭建在这样的平台之上的,如果出现数据不一致的情况,将会造成极大的影响和损失。正是因为数据一致的问题非常重要,所以一定要有数据的一致性校验的能力,而在DTS的异地多活解决方案中恰恰拥有这样的能力,能够轻松地校验两端的数据库是否是一致的,并且可以非常轻松地订正表,当出现问题时也可以及时地进行修复。

       在下图所示的场景中,展现的是从Oracle数据库迁移到OceanBase或者MySQL数据库。阿里云的很多政府部门或者银行的客户使用的数据库还是Oracle或者DB2,而这些用户往往也希望借鉴阿里巴巴的架构来实现自己的全球化分布来避免单点问题。而在这样的场景之下如何去支持异构数据呢?今天,阿里云在线上已经能够为用户提供这样的能力,而且在银行业也有实际落地的案例,DTS能够将Oracle数据库中的日志解析出来写给OceanBase,而且在这里面还可以支持DDL功能,比如从Oracle到MySQL可以支持DDL。而如果大家对于Oracle和MySQL比较了解的话就会明白他们两者之间的DDL的差别是非常大的。当然这里并不是说阿里云DTS的异构多活解决方案能够支持所有的DDL,但是对于大多数的DDL而言都是能够支持的。
    
    
    
       在上图所示的场景里面存在着一个非常大的问题,就是用户其实从Oracle到OceanBase之间存在着一个缓慢的过程,所以从Oracle逐渐切入到OceanBase或者MySQL上需要一个灰度的能力。在这个场景中,首先假设有三个用户向A城Oracle中写数据,这时候想要切一个用户到B城上去,这时候就需要DTS提供一个能力来告诉用户这个链路的延时是什么样的,如果延时很小就可以将用户从A城切换到B城,这样就可以逐渐地将所有的用户从A城切换到B城上面去。但是当切换过去之后用户可能还是不放心,因为对于像银行业这样的行业而言,如果没有后备的措施,一旦云端发生问题可能就会出现无法迁回到Oracle上去的风险。所以为了让用户放心,DTS同样也提供了迁回到Oracle的能力。而这个功能的实现也存在着比较大的挑战,因为从MySQL或者OceanBase上迁移回Oracle的过程中,数据库也存在着很大的差异性,这样的差异性就需要DTS异构多活产品来抹平,这款产品同样也会提供全量和增量的校验能力,能够实时地发现数据的不一致情况。当将所有的用户全部切换到B城之后就实现了将用户主要业务迁移到阿里云自主可用的RDS、OceanBase以及PolarDB上去。
    
    2021-12-12 19:48:44
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
DTS助力企业快速复制阿里巴巴异地多活架构 立即下载
DTS控制台一本通 立即下载
云原生时代下的分布式云多集群管理-容灾,弹性,多集群负载分布 立即下载