OracleMyCAT详解

一、MyCAT概述
MyCAT是一款由阿里Cobar衍变而来的用来扶助数据库读写分离、分片的分布式中间件。MyCAT可不只协理Oracle、MSSQL、MYSQL、PG、DB2关系型数据库,同时也协助MongoDB等非关系型数据库。基础架构如下:

Oracle 1

1、MyCAT原理

MyCAT重假诺由此对SQL的阻止,然后经过一定规则的分片解析、路由分析、读写分离分析、缓存分析等,然后将SQL发给后端真实的数据块,并将赶回的结果做适合处理回来给客户端。

Oracle 2

  

2、MyCAT功能
(1)数据库分片(Sharding)

通过某种条件,将同一数据库中的数据分散的存储到八个数据库中,已达到疏散单台数据库设备负载的机能,这就是数据库分片。
a.水平拆分
一样张表的差距记录,依据表的某个字段的某种规则拆分到三个数据库(主机)上,这既是程度拆分。
单库业务表可能会过分庞大,存在单库读写与仓储瓶颈,那种状况可以经过水平拆分解决,水平拆分基本架构如下:

Oracle 3

常用水平拆分规则:
*ID
*日期
*特定字段取模

 优点:

*拆分规则抽象好,join操作基本可以数据库内形成
*不存在单库大数额,高并发的性质瓶颈
*应用端改造少
*拉长了系统稳定和负载能力

缺点:
*拆分规则难以抽象
*分片事务一致性难以解决
*多少多次恢弘难度跟维护量极大
*跨库join性能较差

b.垂直拆分
今非昔比的表切分到差其他数据库(主机)上,那就是垂直拆分。
诚如依照作业表举办分拣,划分为分歧的事务、模块库,耦合度越低,越简单做垂直拆分,垂直拆分基本架构如下:

Oracle 4

笔直拆分注意点:
跨库Join,采纳共享数据源或分库接口调用,按照资源和数量规模、负载而定

优点:
*拆分后工作清晰,拆分规则明确
*系统里头结成或扩展简单
*数据库维护简单

缺点:
*一部分业务表不可以Join,只好通过接口情势解决,升高了系统复杂度
*受每种工作分歧的范围存在单库性能瓶颈,不不难扩张跟性能升高
*事务处理复杂

c.水平拆分和垂直拆分共同缺点
*分布式事务处理困难
*夸节点join困难
*扩数据源管理复杂

d.切分总则
*能不切分的玩命不切分
*假若要切分,选拔适用的切分规则,提前规划好
*数据库切分尽量通过数据冗余或表分组来下落跨库join
*工作尽量选取少的多表join

(2)读写分离

 

(3)黑白名单限制

 

3、使用情形 

(1)单纯读写分离,此时安顿最为简单,帮衬读写分离、主从切换
(2)分库分表,对记录超过1000万的表举行水平拆分,最大协理1000亿单表水平拆分
(3)多租户使用,每个应用一个数据库,但先后只需再而三MyCAT,程序不更改,达成多租户化
(4)报表系统,借住MyCAT分表能力,处理大规模的报表计算
(5)替代Hbase,分析大数目
(6)海量实时数据查询

4、优缺点
优点:
(1)扶助多种类型数据库的分片
(2)易扩展
(3)

缺点:

二、MyCAT安装
1、下载
官网地址:http://www.mycat.io/
下载地址:http://dl.mycat.io/1.6-RELEASE/
文档地址:http://www.mycat.io/document/Mycat\_V1.6.0.pdf

三、MyCAT使用

 

四、MyCAT紧要概念

 1、逻辑库(schema)

逻辑库是mycat中间件层配置的附和实际一个或四个事情数据库集群构成。

Oracle 5

2、逻辑表(table)
a.逻辑表是mycat切分到多个数据库或者不切分对应用程序突显的会见的表。
b.分片表是原始的大表,经过分片,分布在差距数据库、相同数据库的保存相同表结构,但数量分化的表。
c.非分片表是未做切分的表。
d.ER表基于E-R关系分片策略,子表记录与所波及的父表记录存放在同一个数额分片上,即子表看重于父表,通过表分组保险数据join不会跨库操作。
e.全局表,业务系统中变化不大、数据量不大(十万之下),但又要求平时涉及的表,mycat选择冗余在相继节点一个份来形成。

3、分片节点(dataNode)
数据库分片后,一个大表被切分到分歧的分片数据库上,每个表分片所在的数据库就是分片节点。

4、分片主机(dataHost)
分片节点所在的服务器,数据切分后,每个分片节点不必然都会把持一台服务器,同一个分片服务器可能存储七个分片节点,尽量使读写压力高的分片节点均衡的放在分化的节点主机上。

5、分片规则(rule)
根据某种业务规则把多少分到某个分片节点上的平整,就是分片规则。(分片规则不行重大,直接决定继续数据处理复杂度)

6、全局种类号(sequence)
当数据库分片后,原有的主键约束在分布式条件下不可能利用,由此必要引入外部体制有限支撑数据唯一象征,这种有限支撑全局的数量唯一代表机制就是大局连串号(sequence)。

7、多租户
多用户的环境共用平等的系列、程序组件,并且保障各用户间数据的隔离性。
a.一个用户一个数据库,隔离级别最高、安全性最好,开销最高
b.共享数据库,隔离数据架构,每个用户一个schema
c.共享数据库,共享数据架构,共享database、schema,通过表tenantID区分租户数据

 

五、MyCAT附录
1、OLAP和OLTP对比

2、关系型和非关系型数据库比较

3、

 

相关文章