1.1 数据库切分概述
OLTP联机事务处理也称为面向交易的处理系统,其基本特征是原始数据可以立即传送到计算中心进行处理,并在短时间内给出结果。
OLAP联机分析处理指通过多维的方式对数据进行分析、查询和报表,可以同数据挖掘工具、统计分析工具配合使用,增强决策分析功能。
Mycat 概述
功能介绍:
1、核心功能是分表分库,即将一个大表水分分割为N个小表,存储在后端的N个数据库里(mysql或其他);
2、后端数据库支持mysql、sql server、oracle、db2 Postgresql、支持nosql mongodb 等
mycat 就是mysql server,而mycat后面连接的是mysql server,就好像是mysql的存储引擎,如innodb myisam等,因此mycat本身并不存储数据,数据是在后端的mysql上存储的,因此数据可靠性以及事务等都是mysql保证的,简单说,mycat就是mysql的最佳伴侣,他在一定程度上让mysql 用用了根oracle pk的能力。
Mycat 是一个强大的数据库中间件,不仅仅可以用作读写分离、以及分表分库、容灾备份,而且可以用于多
租户应用开发、云平台基础设施、让你的架构具备很强的适应性和灵活性,借助于即将发布的 Mycat 智能优化模
块,系统的数据访问瓶颈和热点一目了然,根据这些统计分析数据,你可以自动或手工调整后端存储,将不同的
表映射到不同存储引擎上,而整个应用的代码一行也不用改变。
mycat 原理:
mycat的原理最重要的一个词是“拦截”,他拦截了用户发送过来的sql语句,首先对sql语句做了一些特定的分析:如分片分析、路由分析、读写分离分析、缓存分析等,然后将此SQL发往后端的真实数据库,并将返回的结果做适当的处理,最终返回给用户。
mycat的应用场景:
1、单纯的读写分离,此时配置最为简单,支持读写分离,主从切换;
2、分表分库,对于超过1000万的表进行分片,最大支持1000亿的单表分片;
3、多租户应用,每一个应用一个库,但应用程序只连接mycat,从而不改造程序本身实现多租户化;
4、报表系统,借助于mycat的分表能力,处理大规模报表的统计;
5、替代hbase,分析大数据
6、作为海量数据实时查询的一种简单的有效方案,如果100亿条数据的高频查询;
相关软件有:
360 atlas-sharding
alibaba: cobar
开源社区 mycat
oneproxy
heisenberg
oceanus
vitess
mycat 安装
1、安装mysql5.6或以上版本
2、安装jdk7.0以上版本
yum install epel-release -y
yum install java -y
java -version
3、安装mycat
mycat是二进制包解压后即可应用。
添加到系统变量:
vi /etc/profile
#在文件的最后一行加入
export PATH=/usr/local/mycat/bin:$PATH
#source /etc/profile
[root@s10 ~]# mycat -h
Usage: /usr/local/mycat/bin/mycat { console | start | stop | restart | status | dump }
进入mcat管理控制台
mysql -h127.0.0.1 -uroot -p123456 -P 8066
配置文件介绍:
[root@s10 mycat]# ls
bin catlet conf lib logs tmlogs version.txt wrapper.log
[root@s10 mycat]# tree -d
.
├── bin
├── catlet
├── conf
│ ├── zkconf
│ └── zkdownload
├── lib
├── logs
│ └── 2019-07
└── tmlogs
logs目录:
wrapper.log -------> mycat启动日志
mycat.log -------------> mycat 详细工作日志
conf 目录
schema.xml 主配置文件(读写分离、高可用、分布式策略定制、节点控制)
server.xml mycat软件本身相关的配置
rule.xml 分片规则配置文件,记录分片规则列表、使用方法等
导入数据: