真实场景下Oracle Sharding的优势比较和选择

编辑手记:Oracle Sharding是为OLTP应用程序定制设计的一种可扩展、支持高可用功能的架构,能够在不具有共享硬件或软件的Oracle数据库池中分发和复制数据。事实上基于高可用和易扩展性开发的系统或数据库架构并不仅仅是Oacle Sharding 一个,我们来通过不同产品的对比来认识,sharding到底强大在哪里。

1、Oracle Sharding与Microsoft Azure弹性数据库的比较

Microsoft提供了一个分片式数据库架构,具有与Oracle Sharding相同的许多目标,其产品是仅限云上部署的,称为Azure弹性数据库。 Oracle Sharding与Microsoft Azure相比有很多优势:

  1. Microsoft Azure将碎片作为外部表并对其协调器节点执行所有查询处理来处理多碎片查询。这种设计导致系统难以扩展并且需要在分片和协调器节点之间进行大量的网络数据移动。相比之下,Oracle Sharding多分片查询被下推到每个分片,从而提高性能并减少网络上传输的数据量。
  2. Microsoft Azure要求客户明确配置和维护在多分片查询中使用的分片列表。如果配置更改,则需要由客户端更新映射。而Oracle Sharding自动为客户维护此元数据,由Oracle Sharding维护此类列表,不需要客户端的干预。
  3. Microsoft Azure仅限于副本碎片上的只读查询。更新必须通过数据库链接返回到协调器数据库。 Oracle Sharding支持对Active Data Guard分片上的临时表的任何表和DML更新的只读查询,以及对Oracle GoldenGate分片上的所有表的完全读写访问。

2、Oracle Sharding与NoSQL数据存储的比较

NoSQL数据存储无法提供应用程序透明的可伸缩性,但Oracle可以为使用Oracle RAC和Active Data Guard的任何应用程序执行此操作。 与Oracle Sharding类似,NoSQL数据存储也可以使用分片式架构来实现可扩展性和高可用性的组合。 更喜欢为分片式架构明确设计应用程序的客户可能会认为他们可以选择将Oracle Sharding与Oracle Enterprise Edition结合使用,或者使用NoSQL数据存储库。

客户将选择Oracle Sharding与Oracle企业版,原因如下:

  1. NoSQL数据存储器缺乏企业RDBMS的功能,包括:关系模式,SQL和其他编程接口,支持复杂数据类型,在线模式更改,多核可扩展性,高级安全性,高级可扩展性,ACID属性,一致性读取,JSON的开发人员敏捷性等。例如,Oracle对事务的固有支持意味着并发更新/读取从不会获得不一致的结果; NoSQL数据存储不能这样做。 Oracle还将读一致性扩展到多分片操作,以及使用全局一致性读取,这是NoSQL数据存储不可能实现的。
  2. Oracle Sharding将Oracle企业版与用于部署分片式架构的全面解决方案相结合,包括自动化以简化生命周期管理的多个方面,提高灵活性的高级分区方法以及基于智能数据的路由以实现卓越的运行时性能。

Oracle Sharding和Oracle RDBMS的结合为客户提供了两个方面的优势:能够大规模使用分片式数据库架构,而不会牺牲NoSQL数据存储的特点

3、Oracle Sharding和Oracle NoSQL使用场景的选择

评估简单键值的客户NoSQL数据存储架构选择:

  • 选择Oracle Sharding,如果他们在Oracle企业版和一组全面的功能的组合中看到价值,部署一个分片式架构,实现极高的可扩展性和可用性。
  • 选择Oracle NoSQL,如果他们不把价值放在Oracle企业版的功能,而是寻求降低NoSQL解决方案的所有权成本,旨在提供高可靠性,可扩展和可用的数据存储跨可配置的系统集 存储节点。

4、其他NoSQL数据库对Oracle Sharding有什么优势?

NoSQL竞争对手,例如Cassandra,MongoDB等已经使可扩展性和可用性的分片成为其产品的核心价值主张。与Oracle Sharding相比,他们享有以下优势:

  • 低成本 - 它们是Oracle数据库企业版和更简单的基础架构(尽管功能越少,企业级功能越少)的成本的一小部分。 NoSQL是为不受益于企业RDBMS的简单工作负载而设计的。
  • 开发人员共享 - 分片的决定由架构师和开发人员进行,而不是数据库管理
  • 更简单的HA复制机制 - 直接写入每个副本对数据库复制从主机到其副本。
  • 用于执行多分片查询的多个协调器 - 可以比第一版Oracle Sharding支持的单个协调器更具扩展性(请注意,多分片查询不是Oracle Sharding的主要用例,并且多个协调器计划用于下一版本)。

当客户重视与企业RDBMS的分片的好处时,Oracle Sharding将击败NoSQL数据库。如果一个低成本的NoSQL解决方案更适合客户的需求,销售Oracle NoSQL。 Sharding是Oracle EE和Oracle NoSQL都支持的一流的HA架构。

5、COTS应用程序(如SAP或Oracle电子商务套件)是否可以使用Sharding?

不能,Sharding是明确地用于专门为了利用分片式数据库架构的应用程序。 没有任何应用程序提供商已经认证他们的应用程序用于Oracle Sharding。

原文发布于微信公众号 - 数据和云(OraNews)

原文发表时间:2017-03-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏BeJavaGod

网站平台架构演变史(四) - 水平拆分的查询

之前在讲表拆分的时候氛围垂直拆分和水平拆分 垂直拆分的查询其实不难,就是从单表变为了多表,而大部分情况下只是对主表的查询多,从表的查询会很少用到,这样的情况下关...

28370
来自专栏java一日一条

mysql数据库开发常见问题及优化

mysql 数据库是被广泛应用的关系型数据库,其体积小、支持多处理器、开源并免费的特性使其在 Internet 中小型网站中的使用率尤其高。在使用 mysql ...

10820
来自专栏架构师之路

58同城mysql实战(纯干货)

《大数据量下,58同城mysql实践》 WOT(World Of Tech)2015,互联网运维与开发者大会将在北京举行,会上58同城将分享《大数据量下,58同...

62450
来自专栏MYSQL轻松学

MYSQL常用的性能指标

(1) QPS(每秒Query量) QPS = Questions(or Queries) / seconds mysql > show global sta...

41370
来自专栏杨建荣的学习笔记

物化视图自动刷新的碰壁(r7笔记第61天)

今天和开发的同事讨论一个问题,他们说source 1的环境中存在一个表,现在希望目标环境target 1和target 2中都需要用到这部分的数据。 ? 对...

37040
来自专栏灯塔大数据

塔秘 | 网站访问速度不够快?快收藏SQL 查询优化技巧

前言 你一定知道,一个快速访问的网站能让用户喜欢,可以帮助网站从Google 上提高排名,可以帮助网站增加转化率。如果你看过网站性能优化方面的文章,例如设置服务...

35650
来自专栏杨建荣的学习笔记

一个复杂数据需求的MySQL方案

前些天处理了一个需求,当时的数据库环境是Oracle,我算是想尽了Oracle相关的方案,而且在问题的处理过程中,还在不断的琢磨,如果失败了还有什么其他的...

38280
来自专栏杨建荣的学习笔记

Django数据从sqlite迁移数据到MySQL

昨天快速搭建了一套自己的知识库:使用Django基础模板搭建自己的知识库 感觉一下子有了很多的事情要做,至少得让自己用得舒服些。 没想到有了这个小工具之后,我发...

41630
来自专栏性能与架构

优化更须要优化的Query

什么样的Query更须要优化呢? 这个问题须要从对整个系统的影响来考虑。哪个Query的优化能给系统整体带来更大的收益,就更须要优化。 一般来说,高并发低消...

26470
来自专栏数据库

划重点!必备 SQL 查询优化技巧,提升网站访问速度

在这篇文章中,我将介绍如何识别导致性能出现问题的查询,如何找出它们的问题所在,以及快速修复这些问题和其他加快查询速度的方法。 ? 你一定知道,一个快速访问的网站...

28480

扫码关注云+社区

领取腾讯云代金券