Oracle 19c: Distributed Database -- Sharding
分布式数据库发展历程
1987 分布式数据库应遵循的12条原则
Google 2003, 2004, 2006 年发表的GFS, MapReduce, BigTable
2012年Google公布分布式数据库系统Spanner (NewSQL)
Sharing的作用
更高的扩展性和故障隔离性,数据分片避免大型单一数据库扩展;愿意修改应用,把负载路由到指定的数据库
数据主权问题
Oracle Database Sharding
跨独立数据库的水平分区数据,同一个表的不同分区可以放在不同的数据库里。
逻辑上是一个数据库,所有分片具有相同的Schema
无共享的可伸缩性和可用性架构--- Shared Nothing的架构
Sharing 好处
Linear Scalability 线性扩展 1000个分片
Extreme Available极高可用性
分布部署
Oracle Sharding的优势
ACID, ADG/OGG 。。。
Oracle Sharding架构由两部分组成
Oracle GDS (Global Data Services)v12cR1 实现自动部署和sharding管理以及拓扑复制
GDS框架中,Global Service Manager (GSM)负责将应用请求分发到需要的sharding上
Sharded database (SDB)
Shard,独立的硬件资源
Shard Catalog, 集中存储和管理SDB的配置信息, 可以用ADG实现高可用
Shard Directos, 类似监听器,管理客户端访问和负载均衡
管理工具, GDSCTL, EM 13c
Sharing 部署步骤:
1. 安装组件
2. 使用GDSCTL命令指定拓扑布局
create shardcatalog
add gsm
start gsm
add 。。。
3. 运行Deploy并添加全局服务
-------------创建分片表家族
create tablespace set tbs1;
create sharded table customers (... ...)
partition by consistent has (custid)
partitions auto
tablespace set tbs1;
Sharding 键支持number, integer, smallint, raw, (N)Varchar, (N)char, date and timestamp
-------------创建Duplicated Tables
所有的分片上复制的非分片表
使用物化视图复制
在catalog中创建,通过使用shrd dupl_table_refresh_rate初始化参数设置刷新频率,默认60秒
不能存储在用于分票表的表空间中
------------Sharded Table Family
一组以相同方式分片的表
每个table family只能有一个root table
19c 支持多table family,但仅限于系统管理分片 (consistent hash)
------------Chunk
------------Oracle Sharding 分片方式
系统管理分片 System Managed sharding,consistent hash
组合分片 Composite sharding, 数据首先在多个shardspace中按list,或range进行分区,然后再每个shardspace中的多个shard中通过一致性散列进行进一步分区。
用户定义分片: by range, by list
-----------Sharding 环境下的路由
Direct routing
Poxy routing
RAC Sharding, 提供Cache 使用效率
alter system enable affinity (tableName>;
19c 支持多PDB的分片
可伸缩的多分片查询协调器
支持多个表家族
分片数据库的整合
通过ADG可以配置多个跨shard查询协调器 coordiater
Sharding构架对应用的要求
仅在新建数据库时可用
应用于OLTP应用,应用程序设计,数据部署要求。
Links:
--End of File--
Comments
Post a Comment