YH6:Oracle Sharding 知识库

简单来说,Oracle的Sharding技术就是通过分区(Partioning)技术的扩展来实现的。以前一个表的分区可以存在于不同的表空间,现在可以存在于不同的数据库。不同分区存在于不同数据库,这就将数据隔离了开来,Sharding就此实现。

Benefits of Sharding

Oracle ADG上的列式存储支持

Oracle ADG上的列式存储支持Oracle ADG上的列式存储支持

Sharding为最高要求的OLTP应用提供线性可扩展性和完整的故障隔离。其主要优点包括:

  • 线性可扩展性。 Sharding消除了性能瓶颈,并且可以通过添加分片来线性扩展性能和容量。
  • 故障遏制。分片是一种无共享硬件基础架构,可消除单点故障,例如共享磁盘,SAN和群集,并提供强大的故障隔离 - 一个分片的故障或减慢不会影响其他分片的性能和可用性。
  • 数据的地理分布。分片使得可以尽量接近消费者进行存储特定数据,并且当数据必须位于特定管辖区时满足监管要求。
  • 滚动升级。一次在一个分片上应用配置更改不会影响其他分片,并允许管理员首先测试对小数据子集的更改。
  • 云部署的简单性。分片非常适合在云中部署,可以根据需要调整大小以适应任何可用的云基础设施,并且仍然实现所需的服务水平。 Oracle Sharding支持内部部署,云和混合部署模型。

Oracle Sharding的组件

Oracle ADG上的列式存储支持

Oracle ADG上的列式存储支持Oracle ADG上的列式存储支持

Oracle Sharding是适用于OLTP应用程序的可扩展性和可用性功能。它可以在不共享硬件或软件的Oracle数据库池中分发和复制数据。应用程序将数据库池视为单个逻辑数据库。应用程序可以通过向池中添加数据库(分片),在任何平台上将数据、事务和用户弹性扩展到任何级别。 Oracle 12.2支持扩展到1000个分片。

下图说明了Oracle Sharding的主要架构组件:

  • 分段数据库(SDB) - 单个逻辑Oracle数据库,横跨在没有共享硬件或软件的物理Oracle数据库(分片)池中进行水平分区
  • 分片 - 承载分片数据库子集的独立物理Oracle数据库
  • 全局服务 - 提供对SDB中数据的访问的数据库服务
  • Shard目录 - 支持自动分片部署,集中管理分片数据库和多分片查询的Oracle数据库
  • 分片导向 - 网络侦听器,可根据分片键实现高性能连接路由
  • 连接池 - 在运行时,通过跨池连接路由数据库请求,充当分片导向
  • 管理接口 - GDSCTL(命令行实用程序)和Oracle企业管理器(GUI)

Oracle Sharding的使用场景

Oracle ADG上的列式存储支持

Oracle ADG上的列式存储支持Oracle ADG上的列式存储支持

  • Extreme scaling of web-scale OLTP databases 规模较大的web-scale 联机事务处理数据库 主要执行单片操作
  • fault isolation 故障隔离 单个分片出现故障不会导致真个服务器挂掉
  • Geo-data distribution 地理数据分布 使数据更接近消费者以减少延迟 需要满足在公民国家存储用户数据的监管要求

更多关于Sharding的知识:

关于Oracle Sharding,你想知道的都在这里

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

在12.2中,Sharding有许多功能上的新特性和特性的增强.

Oracle Database 12c版本2(12.2)的分片是一种适用的在线事务处理(OLTP)应用程序的架构,其中数据被水平分区到多个分立的Oracle数据库(称为分片),这些数据库不共享硬件或软件。分片集合作为单个逻辑数据库呈现给应用程序。

  • Oracle分片支持自动部署,高性能路由和完整的生命周期管理.

通过Oracle Data Guard或Oracle GoldenGate replication进行自动部署,可实现单个分片的高可用性。每个分片是一个Oracle数据库,它们具有相同的功能,只有极少数的情况下会作为非分片部署中的Oracle数据库。

  • Oracle分片用于为分片式数据库架构显式设计的自定义OLTP应用程序。 与基于Oracle Real Application Clusters(Oracle RAC)的架构不同,使用分片的应用程序必须具有明确定义的数据模型和数据分布策略(一致的哈希,范围,列表或组合),主要使用分片键访问数据。密钥的示例包括customer_id,account_no,country_id等。 Oracle分片还支持数据放置策略和所有部署模型(例如,本地和公共或混合云)。

12.2关于Sharding的新特性,请查看:

Oracle 12.2新特性掌上手册 - 第四卷 Sharding 的增强

分片级别的高可用

Oracle ADG上的列式存储支持

Oracle ADG上的列式存储支持Oracle ADG上的列式存储支持

Oracle Sharding与Oracle数据库复制技术集成,可在碎片级别实现高可用性和灾难恢复。可以通过以下两种方式实现:

1、Oracle Sharding与Oracle Data Guard紧密集成。

2、Oracle Data Guard与SDB

Oracle Sharding与Oracle Data Guard紧密集成。 Data Guard复制维护一个或多个分片(主要)的同步副本(standbys),以实现高可用性和数据保护。Standbys可以在本地或远程部署,并且在使用Oracle Active Data Guard时也可以打开只读访问。

详细内容及高可用实现参考:Shard_Level High Availability

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

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

浅谈运维工具体系

运维行业正在变革,推荐阅读:30万年薪Linux运维工程师成长魔法 运维流程管理工具 发布变更流程管理工具:做为系统接口与其他角色的工作衔接。并提供审批环节控制...

3248
来自专栏JavaQ

三分钟学习持续集成

什么是持续集成 持续集成(Continuous Integration),简称CI,是持续地编译、测试、审查、打包、部署源代码的过程,是一种软件开发实践。 持续...

2655
来自专栏企鹅号快讯

Kubernetes 年度关键进展回顾

2017年已经接近尾声,Kubernetes保持者每季度一个大版本的节奏快速发展,1.6至1.9版本共计完成了近150项特新更新,在集群规模、调度能力、可扩展性...

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

MySQL分布式架构演进小结

最近在整理一个系统的分布式架构扩展方案,经过了多次的迭代,总算让项目走上了正轨。

1030
来自专栏IT技术精选文摘

快速正确的搭建一个微服务架构需要了解的那几个点

1244
来自专栏我是攻城师

Spark生态顶级项目汇总

2958
来自专栏不止思考

大数据之数据采集

浏览器页面采集: 主要是收集页面的 浏览日志(PV/UV等) 和 交互操作日志(操作事件)。

1492
来自专栏PingCAP的专栏

刘寅:TiDB 工具链和生态

大家下午好,我叫刘寅。在 PingCAP 主要负责 TiDB 商业工具产品开发,也在做公司 SRE 方面的事情。今天下午我分享的主题是介绍下 TiDB 的周边工...

61710
来自专栏性能与架构

使用服务降级来减低系统负载

之前在京东的技术交流会上,京东架构师分享了服务降级策略 1为什么使用服务降级 在618店庆、双十一购物节等大型活动中,系统压力非常大,这个时候最重要的就是系统的...

2667
来自专栏Forrest随想录

从0到1:蘑菇街运维技术管理体系建设分享(下)

接上篇,做完了标准化及标准化管理以后,我们遇到的比较棘手的问题就是这么多的应用应该怎样高效发布,这就涉及到持续集成和发布的问题。原来的PHP工程,只要在一个PH...

603

扫码关注云+社区