eygle.com   eygle.com
eygle.com eygle
eygle.com  
 

« 2015 OOW:Oracle数据库的未来 | Blog首页 | 2015 OOW:云时代Oracle欲做终结者 »

2015 OOW:Oracle的Sharding技术
modb.pro

IMG_1100.jpg

在2015年OOW大会,国内很多小伙伴们一直非常关心Oracle Database 12.2中的Sharding技术实现,可是要知道在Larry Ellison的演讲中,根本就没有提到这个特性,而在Andrew Mendelsohn的Session中,这一特性也仅仅只有一行字:Sharding 。

这说明Sharding这一特性,在Oracle现阶段的数据库产品战略中并不重要,Andy也说,可能仅有少数用户才可能用到这一特性。

Oracle Sharding的实现

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

不同分区存在于不同数据库,这就将数据隔离了开来,Sharding就此实现。

IMG_1139.jpg

Sharding如何实现数据路由?

既然数据被拆分,那么在访问时如何实现数据路由呢?在Sharding的架构里,存在一个"Shard Directories"目录库来管理Sharding的分布,当应用通过Sharding Key来访问数据时,连接池就会给出访问路径,快速指向需要访问的Shard。如果应用不指定分区键访问,则需要通过协调库-Coordinator DB来协助判定。

IMG_1143.jpg

那么这里提到的连接池是什么呢?

可能很少有人注意到,在Oracle 12.1版本中增加的一个新的产品组件 GDS - Global Data Services,通过GDS可以构建一个访问"连接池",为后端的数据库访问提供代理和路由服务,前面提到的Shard Directories,正是在GDS中配置的。

GDS05.png

 

如何创建Sharding数据表?

在创建Sharding对象之前,需要先创建表空间集合 - Tablespace Set,表空间集合包含在不同数据库中的表空间定义,也就是将以前针对不同分区创建的表空间转移到不同的数据库中。

IMG_1168.jpg

如何配置连接池?

关于连接池的配置,实际上在GDS的文档中,早有描述,以下图中则详细描述了Sharded Database的部署,其中最先创建的是shardcatalog,创建了一个Shard的目录配置数据库,而GSM - Global Service Managment,就是全局的服务管理配置。

IMG_1165.jpg
关于GDS的配置,以下一图 - 一目了然:

GDS06.png
如果在12.1中还看不清楚 GDS的作用,现在12.2中,Sharding中的重要作用就日益凸现出来。


历史上的今天...
    >> 2011-11-03文章:
    >> 2009-11-03文章:
    >> 2008-11-03文章:
    >> 2007-11-03文章:
    >> 2006-11-03文章:
    >> 2004-11-03文章:
           两只蝴蝶

By eygle on 2015-11-03 14:55 | Comments (0) | OraNews | Oracle12c/11g | 3191 |


CopyRight © 2004~2020 云和恩墨,成就未来!, All rights reserved.
数据恢复·紧急救援·性能优化 云和恩墨 24x7 热线电话:400-600-8755 业务咨询:010-59007017-7040 or 7037 业务合作: marketing@enmotech.com