mycat配置oracle,linux环境下Mycat安装与配置详解

本文详细介绍了MyCat数据库中间件的原理和使用,包括垂直切分和水平切分的概念,以及逻辑库、逻辑表、数据主机、数据节点和分片规则等核心概念。同时,提供了MyCat的配置步骤,包括安装、配置文件修改和启动方法,为数据库的分库分表操作提供了一步一步的指导。
摘要由CSDN通过智能技术生成

MyCat中的概念

1.切分

逻辑上的切分,在物理层面使用多库(database)、多表(table)实现切分。

1.1 纵向切分/垂直切分

就是把原来存储在一个库的数据存储在多个库上

由于数据库的读写都是对同一个库进行操作,所以单库并不能解决大规模并发写入的问题。

例如:我们会建立定义数据库 workDB、商品数据库 payDB、用户数据库 userDB、日志数据库 logDB 等。

优点:

减少增量数据写入时的锁对查询的影响。

由于单表数量下降,常见的查询操作由于减少了需要扫描的记录,使得单表单次查询所需检索的行数变少,减少了磁盘IO、时延变短。

缺点:

无法解决单表数据量太大的问题。

1.2 横向切分/水平切分

把原本存储于一个表的数据分块存储到多个表上

当一个表中的数据量过大时,我们可以把该表的数据按照某种规则,进行划分,然后存储到多个结构相同的表上。

例如:我们 userDB 中的 userTable 中数据量很大,那么可以把 userDB 切分为结构相同的多个 userDB:part0DB、part1DB 等,再将 userDB 上的 userTable,切分为很多 userTable:userTable0、userTable1 等,然后将这些表按照一定的规则存储到多个 userDB 上。

优点:

单表的并发能力提高了,磁盘的I/O性能也提高了

如果出现高并发的话,总表可以根据不同的查询,将并发压力发到不同的小表里。

缺点:

无法实现表连接查询

2.逻辑库-Schema

MyCat中定义的database是逻辑上存在的,但物理上是不存在的。

主要是针对纵向切分提供的概念。

3.逻辑表-Table

MyCat中定义的table,是逻辑上存在,物理上不存在的

主要是针对横向切分提供的概念

4.默认端口

MySql:3306

MyCat:8066

Tomcat:8080

Oracle:1521

nginx:80

http:协议默认端口80

redis:6379

5.数据主机-DataHost

物理MySql存放的主机地址,可以使用主机名,IP,域名定义。

6.数据节点-DataNode

配置物理的database。数据保存的物理节点就是database

7.分片规则

当控制数据的时候,如何访问物理database和table?

就是访问dataHost和dataNode的算法

在Mysql处理CRUD时,如何访问datahost和datanode的算法?如:哈希算法,crc32算法等。

下载

github太慢直接网盘下就行,版本是1.6

链接: https://pan.baidu.com/s/1QQyIUj_Y03Ctpo22yIuNxA 密码: 3arv

安装

解压

tar -zxvf Mycat-server-1.6.7.1-linux.tar.gz

移动到/usr/local目录下

mv mycat /usr/local

进入/usr/local/mycat 目录

cd /usr/local/mycat

ll查看目录内容

9a8de6271cfe4ca777b2d268830079d2.png

bin:命令文件

catlet:空的,扩展

conf:配置文件(server.xml,schema.xml,rule.xml等)

schema.xml:定义逻辑库,表、分片节点等内容

rule.xml:定义分片规则

server.xml:定义用户以及系统相关变量,如端口等

lib:依赖的jar包

配置

进入conf目录

c3d133048bd566f2535412771922af40.png

cd /usr/local/mycat/conf

以下建议可以进行vim的基本操作。

以下配置为演示,注意看配置信息和标签根据自己的需求进行修改

修改配置文件server.xml (经常修改)

childTable>

table>

schema>

writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">

select user()heartbeat>

writeHost>

dataHost>

writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">

select user()heartbeat>

writeHost>

dataHost>

mycat:schema>

配置schema.xml

8066property>

0property>

1property>

0property>

0property>

2property>

falseproperty>

0property>

0property>

1property>

64kproperty>

1kproperty>

0property>

384mproperty>

falseproperty>

falseproperty>

trueproperty>

system>

whitehost>

blacklist>

firewall>

123456property>

mydatabaseproperty>

user>

mycat:server>

启动

安装java-jdk:https://blog.csdn.net/qq_42094345/article/details/106954139

控制台启动 :去 mycat/bin 目录下执行 ./mycat console

后台启动 :去 mycat/bin 目录下 ./mycat start

为了能第一时间看到启动日志,方便定位问题,我们选择1控制台启动。

成功会有提示【successfully】

MyCAT Server startup successfully. see logs in logs/mycat.log

登陆mycat

mysql -umycat -p123456 -h 192.168.0.103 -P 8066

使用mysql命令登陆

用户名和密码是schema.xml 的 标签里面配置的用户名和密码

04b3b65db8a6dfbb44cb78e2fe568ce5.png

登陆成功

a57247fc53ad7dfdd64c509446fd3da3.png

后面将写分库分表,主从啥的。

有用请三连,不胜感激!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值