作业帮 > 体裁作文 > 教育资讯

mycat部署

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/14 05:52:41 体裁作文
mycat部署体裁作文

篇一:MyCAT-WEB操作手册

MyCAT-WEB操作手册

文档信息(Document Info)

修订信息(Revise Info)

附件信息(Attachment Info)

目录

1 概述 ........................................................................................................................................... 2

1.1

1.2

2 目的 ......................................................................................................................................... 2 范围 ......................................................................................................................................... 2 准备 ........................................................................................................................................... 3

2.1

2.2

2.3 运行环境 ................................................................................................................................. 3 环境变量 ................................................................................................................................. 3 启动安装 ................................................................................................................................. 3

3 MYCAT运行参数 ....................................................................................................................... 4

3.1

3.2 创建MYCAT数据源 ................................................................................................................ 4 查看MYCAT状态 ...................................................................................................................... 5

4 监控中心 ................................................................................................................................... 6

4.1

4.2 MYCAT监控 ............................................................................................................................. 7 JVM监控 ................................................................................................................................. 8

4.2.1 JVM配置 ............................................................................................................................. 8

4.2.2 JMX数据源配置 ................................................................................................................. 8

4.2.3 JVM监控 ............................................................................................................................. 9

1 概述

1.1 目的

主要介绍MyCAT-WEB安装启动以及监控部分的配置及使用

1.2 范围

所有使用MyCAT-WEB开发人员

2 准备

2.1 运行环境

MyCAT-WEB由Java语言开发,运行环境为JDK1.7及以上的版本

2.2 环境变量

JDK下载地址: JAVA_HOME:C:\Program Files\Java\jdk1.7.0_75

PATH:%JAVA_HOME%\bin

CLASSPATH:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

2.3 启动安装

解压mycat-web之后 进入mycat-web目录 ? ? windows启动 启动start.bat linux启动 启动start.sh 显示如下页面启动成功:

访问地址:http://localhost:8082/mycat即可

3 mycat运行参数

MyCAT性能监控为针对某个MyCAT数据源的系统参数的实时查询,所以需要先创建一个数据源,可创建多个数据源。 关于性能监控的更多信息可查看‘Mycat命令行监控指南.docx’

3.1 创建MyCAT数据源

? 点击mycat-web首页左侧菜单 ‘mycat管理’

? 点击按钮

? 打开如下页面

参数要求: 参数名称 参数描述

MyCAT名称

是由字母+数字组成的唯一表示(最好有意义)

IP 要监控的IP地址,本地为localhost

端口 MyCAT的监控端口,默认为9066

数据库名 要监控的schema名称,该配置在conf目录下的schema.xml中 用户名 要监控的数据库对应的登陆用户名,该配置在conf目录下的

server.xml中

密码 要监控的数据库对应的登陆密码,该配置在conf目录下的

server.xml中

3.2 查看mycat状态

? 点击mycat-web首页左侧菜单 ‘mycat性能’

出现两个下拉框

第一个下拉框为上一步创建的数据源

第二个下拉框为要查询的具体内容

如下:

篇二:详解 mycat分片

MYcat 分片规则

. 枚举法:

通过在配置文件中配置可能的枚举id,自己配置分片,使用规则:

user_id

hash-int

class="org.opencloudb.route.function.PartitionByFileMap">

partition-hash-int.txt 0

0

partition-hash-int.txt 配置:

10000=0

10010=1

DEFAULT_NODE=1

上面columns 标识将要分片的表字段,algorithm 分片函数,

其中分片函数配置中,mapFile标识配置文件名称,type默认值为0,0表示Integer,非零表示String,

所有的节点配置都是从0开始,及0代表节点1

/**

* defaultNode 默认节点:小于0表示不设置默认节点,大于等于0表示设置默认节点

*

默认节点的作用:枚举分片时,如果碰到不识别的枚举值,就让它路由到默认节点

* 如果不配置默认节点(defaultNode值小于0表示不配置默认节点),碰到

* 不识别的枚举值就会报错,

* like this:can't find datanode for sharding column:column_name

val:ffffffff

*/

2.固定分片hash算法

user_id

func1

class="org.opencloudb.route.function.PartitionByLong">

2,1

256,512

配置说明:

上面columns 标识将要分片的表字段,algorithm 分片函数,

partitionCount 分片个数列表,partitionLength 分片范围列表

分区长度:默认为最大2^n=1024 ,即最大支持1024分区

约束 :

count,length两个数组的长度必须是一致的。

1024 = sum((count[i]*length[i])). count和length两个向量的点积恒等于1024 用法例子:

本例的分区策略:希望将数据水平分成3份,前两份各占25%,第三份占50%。(故本例非均匀分区)

// |<---------------------1024------------------------>|

// |<----256--->|<----256--->|<----------512---------->|

// | partition0 | partition1 | partition2 |

// | 共2份,故count[0]=2 | 共1份,故count[1]=1 |

int[] count = new int[] { 2, 1 };

int[] length = new int[] { 256, 512 };

PartitionUtil pu = new PartitionUtil(count, length);

// 下面代码演示分别以offerId字段或memberId字段根据上述分区策略拆分的分配结果

int DEFAULT_STR_HEAD_LEN = 8; // cobar默认会配置为此值

long offerId = 12345;

String memberId = "qiushuo";

// 若根据offerId分配,partNo1将等于0,即按照上述分区策略,offerId为12345时将会被分配到partition0中

int partNo1 = pu.partition(offerId);

// 若根据memberId分配,partNo2将等于2,即按照上述分区策略,memberId为qiushuo时将会被分到partition2中

int partNo2 = pu.partition(memberId, 0, DEFAULT_STR_HEAD_LEN);

如果需要平均分配设置:

class="org.opencloudb.route.function.PartitionByLong">

2,1

256,512

3.范围约定

user_id

rang-long

class="org.opencloudb.route.function.AutoPartitionByLong">

autopartition-long.txt

# range start-end ,data node index

# K=1000,M=10000.

0-500M=0

500M-1000M=1

1000M-1500M=2

0-10000000=0

10000001-20000000=1

配置说明:

上面columns 标识将要分片的表字段,algorithm 分片函数,

rang-long 函数中mapFile代表配置文件路径

所有的节点配置都是从0开始,及0代表节点1,此配置非常简单,即预先制定可能的id范围到某个分片

4.求模法

user_id

mod-long

class="org.opencloudb.route.function.PartitionByMod">

3

配置说明:

上面columns 标识将要分片的表字段,algorithm 分片函数,

此种配置非常明确即根据id进行十进制求模预算,相比方式1,此种在批量插入时需要切换数据源,id不连续

5.日期列分区法

create_time

sharding-by-date

class="org.opencloudb.route.function.PartitionByDate">

yyyy-MM-dd

2014-01-01

10

配置说明:

上面columns 标识将要分片的表字段,algorithm 分片函数,

配置中配置了开始日期,分区天数,即默认从开始日期算起,分隔10天一个分区

Assert.assertEquals(true, 0 == partition.calculate("2014-01-01")); Assert.assertEquals(true, 0 == partition.calculate("2014-01-10")); Assert.assertEquals(true, 1 == partition.calculate("2014-01-11")); Assert.assertEquals(true, 12 == partition.calculate("2014-05-01"));

6.通配取模

user_id

sharding-by-pattern

class="org.opencloudb.route.function.PartitionByPattern">

256

2

partition-pattern.txt

篇三:Mycat高级功能测试案例

MyCAT高级功能测试案例

部署方式:

后端双主双从模式的数据库模式,四个实例分别命名为M1,M2,S1,S2,(M1->S1,M2->S2,并且M1与 M2互为主备)

Schema.xml配置如下:

dbType="mysql"dbDriver="native">

select user()

password="123456">

password="123456" />

passw(来自:WWw.SmhaiDa.com 海达范文网:mycat部署)ord="123456">

password="123456" />

心跳功能测试:

案例一:所有节点正常,心跳正常。

案例二:S1或S2停掉,发现检测出来心跳异常。

案例二:S1或S2恢复,发现检测出来心跳正常。

高可用测试:

案例一:所有节点正常,此时M1负责写数据,通过执行insert或update可以看到SQL是在M1上执行。

16:37:21.660 DEBUG [Processor0-E3] () -select read source hostM1 for dataHost:localhost1

观察数据库的日志或数据库本身的数据记录,可以验证这一点。

案例二:M1停止,观测到日志中发现节点切换事件,insert或update语句此时在M2上执行。

案例三:M2也停止,此时执行update 或insert语句报错,而命令行执行select语句成功。 读写分离测试:

环境正常,M1为当前写节点。

案例一:balance设置为0,此时,所有操作会在M1上。

案例二:balance设置为1,此时,写操作会在M1上,读操作会在M2,S2,S1上随机分配。观察日志以及查看数据库日志(数据库日志可以临时开启),可以发现这一点。

案例三:balance设置为2,此时,写操作在M1上,所有读操作会在M1,M2,S1,S2上随机分配。

故障情况下的读写分离测试:

案例一:balance为1, M1停止,此时,写操作会在M2上,读操作会在S2上

案例二:balance为1, M1停止M2停止,此时,写操作失败,读操作会在S1,S2上 案例三:balance为2, M1停止,此时,写操作会在M2上,读操作会在S2,M2上 案例四:balance为2, M1,M2停止,此时,写操作失败,读操作会在S1,S2上 案例五:balance为1,S1停止,此时,读操作会在S2、M2上,反之若停止S2 ,则读操作在S1、M1上。

案例六:balance为1, S1、S2都停止,则读操作在M2上。

案例七:balance为2, S1停止,则读操作在M2上,M1、S2上。 案例八:balance为2, S1,S2都停止,则读操作在M2上,M1上。

篇四:Mycat大型项目使用案例

Mycat+percona+keepalived+haproxy

作者:zuoyuezong@163.com

为什么Mycat难相信很多哥们做mycat不是不全就是这出错那里出错最后崩溃的边缘晃荡几分钟后不了了之,要么公司的mycat是个这里提供一个例子 至于mycat的介绍就是:www.baidu.com搜索框中输入mycat

1.下载安装mycat,java

jre-8u51-linux-x64.rpmMycat-server-1.4-RELEASE-201509

[root@node24 src]#tar -xf Mycat-server-1.4-RELEASE-20150901112004-linux.tar.gz

[root@node24 src]#mv mycat/ /usr/local/

[root@node24 src]#useradd mycat

[root@node24 local]#chown mycat:root mycat/ -R

[root@node24 src]#rpm -ivh jre-8u51-linux-x64.rpm

Preparing... ########################################### [100%]

1:jre1.8.0_51 ########################################### [100%]

Unpacking JAR files...

rt.jar...

jsse.jar...

charsets.jar...

localedata.jar...

jfxrt.jar...

plugin.jar...

javaws.jar...

Deploy.jar...

[root@node24 src]#java -version

java version "1.8.0_51"

Java(TM) SE Runtime Environment (build 1.8.0_51-b16)

Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)

此处注意java版本不得低于1.6

至此Mycat安装就算完成了

2.mysql环境以及Mycat配置

我的环境如下

10.1.166.22:mysql dn1

10.1.166.23 mysql dn2

10.1.166.24 mysql dn3

10.1.166.25 mysql dn4

10.1.166.26 mysql dn5

配置hosts文件

[root@node22 src]#cat /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

10.1.166.22 node22

10.1.166.22 dn1

10.1.166.23 dn2

10.1.166.24 dn3

10.1.166.25 dn4

10.1.166.26 dn5

传到各个机器

for i in 10.1.166.22 10.1.166.23 10.1.166.24 10.1.166.25 10.1.166.26;do scp /etc/hosts $i:/etc;done

为你的mycat用户设置个密码

[root@node24 src]#passwd mycat

Changing password for user mycat.

New password:

BAD PASSWORD: it is WAY too short

BAD PASSWORD: is too simple

Retype new password:

passwd: all authentication tokens updated successfully.

原始mycat测试配置

[root@node24 conf]#>../logs/wrapper.log

[root@node24 conf]#

[root@node24 conf]#pwd

/usr/local/mycat/conf

[root@node24 conf]#../bin/mycat start

Starting Mycat-server...

报错处理方案

[root@node24 conf]#cat ../logs/wrapper.log

STATUS | wrapper | 2015/09/18 01:27:36 | --> Wrapper Started as Daemon

STATUS | wrapper | 2015/09/18 01:27:36 | Launching a JVM...

INFO | jvm 1 | 2015/09/18 01:27:36 | Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=64M; support was removed in 8.0 ERROR | wrapper | 2015/09/18 01:27:36 | JVM exited while loading the application.

INFO | jvm 1 | 2015/09/18 01:27:36 | Error: Exception thrown by the agent : java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: node24: node24: unknown error

STATUS | wrapper | 2015/09/18 01:27:41 | Launching a JVM...

INFO | jvm 2 | 2015/09/18 01:27:41 | Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=64M; support was removed in 8.0

INFO | jvm 2 | 2015/09/18 01:27:41 | Error: Exception thrown by the agent : java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: node24: node24: unknown error

ERROR | wrapper | 2015/09/18 01:27:41 | JVM exited while loading the application.

STATUS | wrapper | 2015/09/18 01:27:45 | Launching a JVM...

INFO | jvm 3 | 2015/09/18 01:27:45 | Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=64M; support was removed in 8.0 ERROR | wrapper | 2015/09/18 01:27:45 | JVM exited while loading the application.

INFO | jvm 3 | 2015/09/18 01:27:45 | Error: Exception thrown by the agent : java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: node24: node24: unknown error

STATUS | wrapper | 2015/09/18 01:27:50 | Launching a JVM...

INFO | jvm 4 | 2015/09/18 01:27:50 | Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=64M; support was removed in 8.0

INFO | jvm 4 | 2015/09/18 01:27:50 | Error: Exception thrown by the agent : java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: node24: node24: unknown error

ERROR | wrapper | 2015/09/18 01:27:50 | JVM exited while loading the application.

STATUS | wrapper | 2015/09/18 01:27:54 | Launching a JVM...

篇五:MyCat_In_Action_中文版

MyCAT In Action中文版

MyCAT 1.1版本

MyCAT介绍

什么是MyCAT?简单的说,MyCAT就是:

?

?

?

?

?

?

一个彻底开源的,面向企业应用开发的“大数据库集群” 支持事务、ACID、可以替代Mysql的加强版数据库 一个可以视为“Mysql”集群的企业级数据库,用来替代昂贵的Oracle集群 一个融合内存缓存技术、Nosql技术、HDFS大数据的新型SQL Server 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品 一个新颖的数据库中间件产品

MyCAT的目标是:低成本的将现有的单机数据库和应用平滑迁移到“云”端,解决数据存储和业务规模迅速增长情况下的数据瓶颈问题。

MyCAT的关键特性:

? 支持Mysql集群,可以作为Proxy使用

? 自动故障切换,高可用性

? 支持读写分离,支持Mysql双主多从,以及一主多从的模式

? 支持全局表,数据自动分片到多个节点,用于高效表关联查询

? 支持独有的基于E-R 关系的分片策略,实现了高效的表关联查询

? 多平台支持,部署和实施简单

MyCAT的优势:

? 基于阿里开源的Cobar产品而研发,Cobar的稳定性、可靠性、优秀的架构和性能,以及众多成熟的使用案例使得MyCAT一开始就拥有一个很好的起点,站在巨人的肩膀上,我们能看到更远。

? 广泛吸取业界优秀的开源项目和创新思路,将其融入到MyCAT的基因中,使得MyCAT在很多方面都领先于目前其他一些同类的开源项目,甚至超越某些商业产品。

? MyCAT背后有一只强大的技术团队,其参与者都是5年以上资深软件工程师、架

构师、DBA等,优秀的技术团队保证了MyCAT的产品质量。

? MyCAT并不依托于任何一个商业公司,因此不像某些开源项目,将一些重要的特

性封闭在其商业产品中,使得开源项目成了一个摆设。

MyCAT的长期路线规划:

? 在支持Mysql的基础上,后端增加更多的开源数据库和商业数据库的支持,包括原

生支持PosteSQL、FireBird等开源数据库,以及通过JDBC等方式间接支持其他非开源的数据库如Oracle、DB2、SQL Server等

? 实现更为智能的自我调节特性,如自动统计分析SQL,自动创建和调整索引,根据

数据表的读写频率,自动优化缓存和备份策略等

? 实现更全面的监控管理功能

? 与HDFS集成,提供SQL命令,将数据库装入HDFS中并能够快速分析

? 集成优秀的开源报表工具,使之具备一定的数据分析的能力

MyCAT架构

MySQL instance B More…. MySQL instance A MySQL instance C DataNode HeartBeat Checker SQL Parser SQL Router MySQL Socket Protocol Handler Client (MySQL CLI/JDBC/ODBC/…) Front Server SQL Executor Storage

如图所示:MyCAT使用Mysql的通讯协议模拟成了一个Mysql服务器,并建立了完整的Schema(数据库)、Table (数据表)、User(用户)的逻辑模型,并将这套逻辑模型映射到后端的存储节点DataNode(MySQL Instance)上的真实物理库中,这样一来,所有能使用Mysql的客户端以及编程语言都能将MyCAT当成是Mysql Server来使用,不必开发新的客户端协议。

当MyCAT收到一个客户端发送的SQL请求时,会先对SQL进行语法分析和检查,分析的结果用于SQL路由,SQL路由策略支持传统的基于表格的分片字段方式进行分片,也支持独有的基于数据库E-R关系的分片策略,对于路由到多个数据节点(DataNode)的SQL,则会对收到的数据集进行“归并”然后输出到客户端。

SQL执行的过程,简单的说,就是把SQL通过网络协议发送给后端的真正的数据库上进行执行,对于Mysql Server来说,是通过Mysql网络协议发送报文,并解析返回的结果,若SQL不涉及到多个分片节点,则直接返回结果,写入客户端的SOCKET流中,这个过程是非阻塞模式(NIO)。

DataNode是MyCAT的逻辑数据节点,映射到后端的某一个物理数据库的一个

Database,为了做到系统高可用,每个DataNode可以配置多个引用地址(DataSource),当主DataSource被检测为不可用时,系统会自动切换到下一个可用的DataSource上,这里的DataSource即可认为是Mysql的主从服务器的地址。

MyCAT逻辑库

与任何一个传统的关系型数据库一样,MyCAT也提供了“数据库”的定义,并有用户授权的功能,下面是MyCAT逻辑库相关的一些概念:

? schema:逻辑库,与MySQL中的Database(数据库)对应,一个逻辑库中定义了所

包括的Table。

? table:表,即物理数据库中存储的某一张表,与传统数据库不同,这里的表格需

要声明其所存储的逻辑数据节点DataNode,这是通过表格的分片规则定义来实现的,table可以定义其所属的“子表(childTable)”,子表的分片依赖于与“父表”的具体分片地址,简单的说,就是属于父表里某一条记录A的子表的所有记录都与A存储在同一个分片上。

? 分片规则:是一个字段与函数的捆绑定义,根据这个字段的取值来返回所在存储

的分片(DataNode)的序号,每个表格可以定义一个分片规则,分片规则可以灵活扩展,默认提供了基于数字的分片规则,字符串的分片规则等。

? DataNode: MyCAT的逻辑数据节点,是存放table的具体物理节点,也称之为分片

节点,通过DataSource来关联到后端某个具体数据库上,一般来说,为了高可用性,每个DataNode都设置两个DataSource,一主一丛,当主节点宕机,系统自动切换到从节点。

? DataSource:定义某个物理库的访问地址,用于捆绑到Datanode上。

MyCAT目前通过配置文件的方式来定义逻辑库和相关配置:

? MYCAT_HOME/conf/schema.xml中定义逻辑库,表、分片节点等内容

? MYCAT_HOME/conf/rule.xml中定义分片规则

? MYCAT_HOME/conf/server.xml中定义用户以及系统相关变量,如端口等。

下图给出了MyCATd 一个可能的逻辑库到物理库(Mysql的完整映射关系),可以看出其强大的分片能力以及灵活的Mysql集群整合能力。

分片策略

MyCAT支持水平分片与垂直分片:

? 水平分片:一个表格的数据分割到多个节点上,按照行分隔。

? 垂直分片:一个数据库中多个表格A,B,C,A存储到节点1上,B存储到节点2上,C存储到节点3上。

MyCAT通过定义表的分片规则来实现分片,每个表格可以捆绑一个分片规则,每个分片规则指定一个分片字段并绑定一个函数,来实现动态分片算法。以常用的基于整数映射的分片函数org.MyCAT.route.function.PartitionByFileMap为例,此函数通过一个配置文件来确定映射关系,以下面的sharding-by-intfile这个分片规则为例:

sharding_id

hash-int

id

rang-long

partition-hash-int.txt

autopartition-long.txt

体裁作文