最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

Mycat_V1.5用户手册

来源:动视网 责编:小OO 时间:2025-09-28 12:44:53
文档

Mycat_V1.5用户手册

Mycat1.5用户手册经过志愿者们几个月默默奋战,在大家热切的期盼中,Mycat1.5终于要面世了。那么Mycat1.5到底有哪些重大改进呢,下面就罗列几点重要特性与大家分享:1、首次支持基于Galera 集群的状态检测同步切换机制,当集群节点有故障后,自动排查;2、首次引入Zookeeper,可视化管理等重要功能;3、IP白名单,SQL黑名单,数据库账号密码加密等;4、修复重要缺陷:在LVS等前端负载均衡器模式下,与Mycat频繁建立连接和关闭,长期运行后,可能导致连接Id的整数越界,产生
推荐度:
导读Mycat1.5用户手册经过志愿者们几个月默默奋战,在大家热切的期盼中,Mycat1.5终于要面世了。那么Mycat1.5到底有哪些重大改进呢,下面就罗列几点重要特性与大家分享:1、首次支持基于Galera 集群的状态检测同步切换机制,当集群节点有故障后,自动排查;2、首次引入Zookeeper,可视化管理等重要功能;3、IP白名单,SQL黑名单,数据库账号密码加密等;4、修复重要缺陷:在LVS等前端负载均衡器模式下,与Mycat频繁建立连接和关闭,长期运行后,可能导致连接Id的整数越界,产生
Mycat1.5用户手册

经过志愿者们几个月默默奋战,在大家热切的期盼中,Mycat1.5终于要面世了。那么Mycat1.5到底有哪些重大改进呢,下面就罗列几点重要特性与大家分享:

1、首次支持基于Galera 集群的状态检测同步切换机制,当集群节点有故障后,自动排查;

2、首次引入Zookeeper,可视化管理等重要功能;

3、IP白名单,SQL黑名单,数据库账号密码加密等;

4、修复重要缺陷:在LVS等前端负载均衡器模式下,与Mycat频繁建立连接和关闭,长期运行后,可能导致连接Id的整数越界,产生无法连接的问题 ;

5、心跳线程在遇到连接需要同步的情况下,发生连接同步错误,导致断开的异常,但不影响心跳检测结果 ;

6、SQL指定到分片执行;

7、改进reload @@config , Reload all config from file可能卡死BUG;

8、官方提供All-In-One镜像。。

总之,Mycat1.5带来性的改变,而且一直在改变。。

                                 

             

1.5 changelog

该文档记录的是 mycat-server 1.4(2015-10-19)->1.4.1(2015-12-07-1)版本 

新增功能(命令/功能) --> 其中命令给出具体的命令参数说明,及应用场景;

--> 功能给出案例,使用方法步骤

新增 show @@sysparam指令(完成)

新增 load data 对转义字符的支持

新增 可以循环使用的日期分片规则

新增 慢 SQL 监控功能-- show @@sql.slow ; 命令

新增 归并监控的SQL

增加 远程查看日志的指令, 例:show @@syslog limit=10

该命令用于 9066 管理端口,用来在客户端显示系统日志信息;

limit 后接数值是用来限定最多显示日志的条数

新增 读写权重配置

增加 心跳曲线监控功能,并对心跳时间精度做出调整

新增 主从同步监控功能

新增 集群心跳检测功能

新增 syslog 指令说明的 help 显示

增加 用户(mycat user)服务降级的配置及测试功能

增加 prepare 记录

增加 记录 connection 前一次执行 sql 语句功能

新增功能 将 Zookeeper 上保存的数据写入本地 XML 文件中,XML 文件有 server.xml , schema.xml , rule.xml

新增功能 可在写服务操作挂掉之后,读服务依然可用

【eye--eye文档中有介绍】新增统计服务功能, 根据用户统计  SQL 的执行情况给出 {1, R/W ; 2, SLOW TOP 10 , 3. 时段,耗时 的直方图}

新增 命令 show @@sql @@sql.sum @@sql.slow 统计数据重置; 

新增 reload@@user_stat 指令

新增 sql hint 通过 datanode 路由

新增 在 sql.sum 统计中增加了并发数,显示字段名重构

在 DTD 中新增加了 tempReadHostAvailable 定义

新增  Zookeeper 配置文件的上传下载功能

新增  explan2 命令,通过 datanode 获取物理节点的 SQL 解析

新增默认节点的 showtable 命令

新增提交 IP 白名单和密码加密功能

新增 table 级别的统计分析功能,如 R/W 关联表

新增 对 show @@help 指令支持

新增对 mysql jdbc 5.1.37 的支持

新增 sql 黑名单功能

新增 高频 SQL 分析功能

新增加 对无用的 SQL 语句进行过滤,仅支持 CURD 语句 功能

修复的 ISSUE -->重现出现问题场景

--> 给出修复之后的使用方法示例

修复并改进loaddata语句对不同字符集时的支持

修复 explain 显示缺陷

修复 tempSchema 空指针错误

修复 PHP 字符集设置错误, 如 set names 'utf8'

修复分析定位跨分片处理时,主动关闭后端导致的 bug 

修复分页无效遍历

修复update别名路由错误的bug

修复 DDL路由BUG

修复执行 DDL 语句,中间件会将结构转为大写的方式执行的 BUG

修复 CREATE/DROP INDEX功能

(测试用例修复)修复测试用例 DDLRouteTest 2 个测试用例不通过的问题

修复优化 order 漏判断 limitsize=-1 功能

修复排序问题

修复集群中多主监控未获取到数据问题

修复 limit -1 返回控制 bug

修复 zkcreate 1.8 方法问题

修复 switchtype=-1 的时候,重启mycat 导致自动切换的问题

修复 5.1.35 show 语句误判问题

修改bufferpool的单位为long

1.5重要功能修复

修复并改进loaddata语句对不同字符集时的支持

修复 explain 显示缺陷

修复 tempSchema 空指针错误

修复 PHP 字符集设置错误, 如 set names 'utf8'

修复分析定位跨分片处理时,主动关闭后端导致的 bug 

修复分页无效遍历

修复update别名路由错误的bug

修复 DDL路由BUG

修复执行 DDL 语句,中间件会将结构转为大写的方式执行的 BUG

修复 CREATE/DROP INDEX功能

(测试用例修复)修复测试用例 DDLRouteTest 2 个测试用例不通过的问题

修复优化 order 漏判断 limitsize=-1 功能

修复排序问题

修复集群中多主监控未获取到数据问题

修复 limit -1 返回控制 bug

修复 zkcreate 1.8 方法问题

修复 switchtype=-1 的时候,重启mycat 导致自动切换的问题

修复 5.1.35 show 语句误判问题

修改bufferpool的单位为long

1.5启动方式

1.5会支持本地xml启动,以及从zk加载配置转为本地xml的两种方式,conf下的zk.conf文件里设置loadfromzk参数默认为false

如果没有这个文件,或者没有loadfromzk为true的参数,即从本地加载。下面介绍从ZK启动相关配置。

1.5新特性

ZK启动

环境准备

1 JDK环境要求

Mycat,mycat eye依赖jdk1.7+环境,jdk下载地址为:

http://www.oracle.com/technetwork/java/javase/downloads/

2 Zookeeper环境要求

下载zookeeper-3.4.6.jar(http://zookeeper.apache.org/releases.html),上传到服务器,然后解压:tar zxvf zookeeper-3.4.6.tar.gz

之后进入zookeeper目录:cd zookeeper-3.4.6,配置zk启动文件:

Zk-create.yaml说明

1.5正式引入zookeeper(以下简称zk)管理Mycat-Server,启动server第一步是初始化zk数据,下面介绍初始化zk数据步骤,信息在zk-create.yaml。Mycat ZK配置文件详解:https://github.com/MyCATApache/Mycat-doc/blob/master/%E8%AE%BE%E8%AE%A1%E6%96%87%E6%A1%A3/2.0/Mycat%20ZK%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E8%AF%A6%E8%A7%A3.docx

1、zk-create总体结构

2、参数说明

2.1、zkURL,zk连接地址

2.2、mycat-cluster

2.3、mycat-hosts

2.4、mycat-zones

2.5、mycat-nodes

2.6、mycat-mysqls

2.7、mysql-reps

Zk初始化

1、进入MYCAT/bin目录

cd /data/test1/mycat/bin

2、修改MYCAT/conf/zk-create.yaml内容

3、启动ZK

启动ZK:bin/zkServer.sh start

登陆ZK:bin/zkCli.sh

4、初始化ZK数据

 sh create_zookeeper_data.sh

 等待执行结束后,检查ZK数据

5、检查ZK数据

 

OK,数据初始化成功。

可视化管理

1安装环境要求

1.1 JDK环境要求

Mycat,mycat eye依赖jdk1.7+环境,jdk下载地址为:

http://www.oracle.com/technetwork/java/javase/downloads/

1.2 Zookeeper环境要求

Mycat eye 需要Zookeeper作为配置中心

zookeeper-3.4.6.tar.gz

1.2 Zookeeper配置

1.解压  zookeeper-3.4.6.tar.gz;

2.zookeeper-3.4.6\\conf 目录下把 zoo_sample.cfg修改为 zoo.cfg;

3.启动zookeeper

       Windowns操作系统启动命令:zookeeper-3.4.6\\bin\\zkServer.bat

        Linux操作系统启动命令:zookeeper-3.4.6\\bin\\zkServer.sh start

2 Mycat eye环境部署

2.1 软件清单

Windowns版本:

Mycat-web-1.0-SNAPSHOT-20151208180035-win.zip

Linux版本:

Mycat-web-1.0-SNAPSHOT-20151208180035-linux.tar.gz

下载地址:https://github.com/MyCATApache/Mycat-download/tree/master/mycat-web-1.0

2.2 运行

1:解压

加压后生成mycat-web目录,目录结构如下:

2:先启动zookeeper;

3:然后启动mycat eye

Windowns版本:

start.bat

Linux版本:

start.sh

2.3 访问mycat eye

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

2.3 mycat.properties配置

方法1:如果zookeeper连接不上

可以修改mycat-web\\mycat-web\\WEB-INF\\classes\mycat.properties配置文件

zookeeper=127.0.0.1:2181

配置下zookeeper的服务器和端口

方法2:访问http://localhost:8082/mycat/

点击注册中心-配置

输入Zookeeper的IP地址和端口即可。

3 Mycat配置说明

Mycat主要是维护mycat节点和mycat jmx信息,有四个菜单

3.1 Mycat服务管理

列表

显示所有管理的mycat服务,如下图所示:

新增

新增一个mycat服务,包括名称,IP,端口,数据库名称,用户名和密码

3.2 Mycat VM管理

列表

显示所有管理的mycatVM服务

新增

新增一个mycatVM服务,包括名称,IP,端口,用户名和密码

3.3 Mycat系统参数

查询mycat服务的系统参数

条件:选择3.1中的mycat服务

Mycat server命令行输入:

show @@sysparam

Mycat系统参数总共有1,如下图:

3.2 Mycat日志管理

查询Mycat最新的日志,默认显示50条

Mycat server命令行输入:

show @@syslog limit=50

4 Mycat监控

Mycat-eye中的mycat性能监控、JVM监控中的监控图是基于jrds实现;

1.实现步骤:

1.1通过mycat服务管理创建一个mycat监控服务。同时会基于freemark模板引擎生成

Jrds配置信息。目前默认指定路径为:WEB-INF\\jrdsconf\\hosts录下。

1.2在通过点击【mycat性能监控】菜单时,页面会调用jrds提供的/reload。加载WEB-INF\\jrdsconf\\hosts下的*.xml如:D_127.0.0.1_9066.xml文件。

通过调用/graph/hostMycatList?hostprefix=D 加载监控列表hostprefix为hosts下的文件名称前缀。

4.1 Mycat性能监控

条件:选择3.1中的mycat服务,包括:

Mycat流量分析

Mycat连接分析

Mycat活动线程分析

Mycat缓冲队列分析

MycatTPS分析

Mycat内存分析

如图所示:

4.2 Mycat JVM性能监控

1)JVM监控需要在Mycat Server中配置启动参数:

-XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:CMSInitiatingOccupancyFraction=70 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=99 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false

或者直接用配置好的startup_nowrap.bat

2)选择3.2中管理的JVM

4.2 Mycat 物理节点

1)选择3.1中管理的Mycat,自动查询出mysql节点信息

2)心跳曲线

4.2 Mycat 主从同步监控

1)选择3.1中管理的Mycat,自动查询出mysql主从节点信息

监控mysql的主从同步曲线

5 SQL监控

SQL监控,主要是监控和分析SQL语句

5.1 SQL统计

按用户统计SQL读写比例,时间分布耗时。

Mycat server命令行输入:

show @@sql.sum

如图所示:

5.2 SQL表统计

统计表的读写比例,表之间的关系;

Mycat server命令行输入:

show @@sql.sum.table

如图所示:

5.3 SQL监控

监控业务系统执行的SQL语句,默认50条;

Mycat server命令行输入:

show @@sql

如图所示:

5.4 高频SQL

SQL进过归并,统计执行频率高的SQL语句;

Mycat server命令行输入:

show @@sql.high

如图所示:

5.5 慢SQL统计

默认查询耗时1000ms的SQL语句,

Mycat server命令行输入:

show @@sql.slow

如图所示:

5.6 SQL解析

解析SQL语句,分2步执行;

第一步:explain 

解析SQL语句的路由信息

第二步:explain2 datanode = dn1 sql =

制定节点,然后到mysql服务器执行

Explain命令

Mycat server命令行输入:

第一步:explain select * from t_sys_log;

第二步:explain2 datanode = dn1 sql = SELECT * FROM t_sys_log LIMIT 10000

如图所示:

权限管理--密码加密

在 Mycat-1.4.1 版本中为用户登录所使用的登录密码提供了加密功能;目前支持的加密方式有两种,分别是前段加密和后端加密。

在这简单介绍前段加密和后端加密的区别:

前段加密是对mycat用户登录到 Mycat-Server 所需要输入的密码进行加密 ;

而后端加密则是指,Mycat-Server 中的 dataHost {dataHost 是mycat逻辑库中最底层的,与具体的数据库实例一一对应}

访问后端数据库实例的时候的所需登录密码进行加密;

不过,无论是前段加密还是后端加密,加密功能的开启都与 usingDecrypt 这个属性值的设定相关;

如果将 usingDecrypt 属性值设定为 1 , 则说明开启前(或后)端加密;

如果将 usingDecrypt 属性值设定为 0 , 则说明关闭前(或后)端加密;

同样,无论前后端加密登录,基本流程都是,

开启密码加密功能;  执行 java 命令对密码进行加密操作;  将生成的加密序列拷贝到 server.xml ;

用户密码子标签中;  根据开启加密功能的用户名称和未加密密码来远程登录服务器端, 上述这几个步骤

1前端加密

这里我们设定用户名称为 userA ,因为对密码进行加密,所以,在这里不需要在 的子标签中通过 属性标签来指定

password ,仅需要设定用户名称和通过将 usingDecrypt 属性值置为 1 来开启加密功能即可:

### 配置文件 server.xml 的配置如下

### 开启加密功能的 Mycat-Server 启动方式

2 后端加密

后端加密是对 dataHost 到后端数据库登录密码进行加密,所以,我们需要配置的是 schema.xml 这个配置文件

#1. 编写 schema.xml 配置文件,具体配置如下所示:

在上述的配置文件中,我们创建了一个名为 userB 向数据库实例执行写操作的 host ,并且该 host 连接到后端数据库实例的时候,

通过 usingDecrypt 参数设定为 1 来开启对密码加密的功能 

#2. 运行 java 命令,来对密码加密生成加密序列数(目录路径同上为 ../mycat-1.4.1-dev/mycat/lib 路径下面)

#3. 将生成的密文密码用来完善 schema.xml 配置文件,具体配置如下图所示:

#4. 运行bin 目录下面的启动脚本来启动 Mycat-Server

#5. 在成功启动 Mycat-Server 之后,开启新窗口,既可以前端加密的方式来登录,也可以设定明文密码的方式来登录,

 

权限管理—IP白名单 /SQL黑名单

IP白名单和SQL黑名单说明:

------------------- ip白名单-------------------

----------------------------黑名单允许的 权限  后面为默认--------------------------------------

配置项 

selelctAllow 

selectAllColumnAllow 

selectIntoAllow 

deleteAllow 

updateAllow 

insertAllow 

replaceAllow 

mergeAllow 

callAllow 

setAllow 

truncateAllow 

createTableAllow 

alterTableAllow 

dropTableAllow 

commentAllow 

noneBaseStatementAllow 

multiStatementAllow 

useAllow 

describeAllow 

showAllow 

commitAllow 

rollbackAllow 

如果把selectIntoAllow、deleteAllow、updateAllow、insertAllow、mergeAllow都设置为false,这就是一个只读数据源了。

拦截配置-永真条件

配置项 

selectWhereAlwayTrueCheck 

selectHavingAlwayTrueCheck 

deleteWhereAlwayTrueCheck 

deleteWhereNoneCheck 

updateWhereAlayTrueCheck 

updateWhereNoneCheck 

conditionAndAlwayTrueAllow 

conditionAndAlwayFalseAllow 

conditionLikeTrueAllow 

其他拦截配置

配置项 

selectIntoOutfileAllow 

selectUnionCheck 

selectMinusCheck 

selectExceptCheck 

selectIntersectCheck 

mustParameterized 

strictSyntaxCheck 

conditionOpXorAllow 

conditionOpBitwseAllow 

conditionDoubleConstAllow 

minusAllow 

intersectAllow 

constArithmeticAllow 

limitZeroAllow 

禁用对象检测配置

配置项 

tableCheck 

schemaCheck 

functionCheck 

objectCheck 

variantCheck 

readOnlyTables 

新增IP登陆功能,与mysql账号授权指定IP段类似,下面介绍用法。 在server.xml添加信任IP /SQL黑名单

示例:

只允许xx IP的主机登陆,并且不允许执行SELECT *操作

false

使用指定主机登陆,执行SELECT *,被执行

使用主机列表以外IP登陆,被登陆

show系统参数

<所在端口号,功能,参数,示例>

++--

命令: show @@sysparam

端口号:9066

功能: 该命令工作在 9066 端口,用来向用户展示处于工作状态的 Mycat-Server 的各项系统参数

参数: 无参数

示例:

### 使用 show @@help 可显示 show @@sysparam 使用说明

show系统日志

++--

命令: show @@syslog limit

端口号:该命令工作在 9066 端口,用来在客户端命令窗口显示系统日志信息,

参数: limit= 后接正整数,该数值用来限定每次最多显示的日志条数

示例:

 

Sql/SlowSql/SqlNum 统计命令

1、清除缓存

命令: reload@@user_stat 

端口号: 该命令工作在 9066 端口,用来将客户端执行 show @@sql ; show @@sql.sum ; show @@slow.success ;

命令之后所缓存的信息清空;

参数: 无参数

2、Sql 统计示例

示例:

 

 

++--

命令: show @@sql ;

端口号: 该命令工作在 9066 端口,用来记录用户通过本地 8066 端口向 Mycat-Server发送的 SQL 请求执行信息

参数: 无参数

示例:

 

 

++--

命令: show @@sql.slow ;

端口号: 该命令工作在 9066 端口,是用来将用户通过 8066 端口向Mycat-Server 发送的请求执行 SQL 语句中超过慢 SQL 时间阈值的

参数:  无参数

示例: 

 

 

 

++--

命令: show @@sql.sum ;

端口号: 该命令工作在 9066 端口,是用来向用户展示本地 8066 号端口上执行的 SQL 命令的统计信息数据

参数: 无参数

示例:

 

 

 

读写权重配置

后端jdbc设置事务隔离级别

写服务操作挂掉之后,读服务依然可用

新增  explan2 命令

Explain2 datanode=? Sql=?

galara集群支持

负载均衡类型,目前的取值有3种:

1. balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的writeHost上。 

2. balance="1",全部的readHost与stand by writeHost参与select语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且M1与 M2互为主备),正常情况下,M2,S1,S2都参与select语句的负载均衡。

3. balance="2",所有读操作都随机的在writeHost、readhost上分发。

4. balance="3",所有读请求随机的分发到wiriterHost对应的readhost执行,writerHost不负担读压力,注意balance=3只在1.4及其以后版本有,1.3没有。

writeType属性

负载均衡类型,目前的取值有3种:

1. writeType="0", 所有写操作发送到配置的第一个writeHost,第一个挂了切到还生存的第二个writeHost,重新启动后已切换后的为准,切换记录在配置文件中:dnindex.properties .

2. writeType="1",所有写操作都随机的发送到配置的writeHost。 

3. writeType="2",没实现。

switchType属性

-  -1 表示不自动切换

-   1 默认值,自动切换

-   2 基于MySQL主从同步的状态决定是否切换

心跳语句为 show slave status

-   3基于MySQL galary cluster的切换机制(适合集群)(1.4.1)

心跳语句为show status like ‘wsrep%’

文档

Mycat_V1.5用户手册

Mycat1.5用户手册经过志愿者们几个月默默奋战,在大家热切的期盼中,Mycat1.5终于要面世了。那么Mycat1.5到底有哪些重大改进呢,下面就罗列几点重要特性与大家分享:1、首次支持基于Galera 集群的状态检测同步切换机制,当集群节点有故障后,自动排查;2、首次引入Zookeeper,可视化管理等重要功能;3、IP白名单,SQL黑名单,数据库账号密码加密等;4、修复重要缺陷:在LVS等前端负载均衡器模式下,与Mycat频繁建立连接和关闭,长期运行后,可能导致连接Id的整数越界,产生
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top