目录
MyCat原理
在MyCat中,当执行一条SQL语句时,MyCat需要进行SQL解析、分片分析、路由分析、读写分离分析 等操作,最终经过一系列的分析决定将当前的SQL语句到底路由到那几个(或哪一个)节点数据库,数据 库将数据执行完毕后,如果有返回的结果,则将结果返回给MyCat,最终还需要在MyCat中进行结果合 并、聚合处理、排序处理、分页处理等操作,最终再将结果返回给客户端。
而在MyCat的使用过程中,MyCat官方也提供了一个管理监控平台MyCat-Web(MyCat-eye)。 Mycat-web 是 Mycat 可视化运维的管理和监控平台,弥补了 Mycat 在监控上的空白。帮 Mycat 分担统计任务和配置管理任务。Mycat-web 引入了 ZooKeeper 作为配置中心,可以管理多个节 点。Mycat-web 主要管理和监控 Mycat 的流量、连接、活动线程和内存等,具备 IP 白名单、邮 件告警等模块,还可以统计 SQL 并分析慢 SQL 和高频 SQL 等。为优化 SQL 提供依据。
MyCat管理
Mycat默认开通2个端口,可以在server.xml中进行修改。
- 8066 数据访问端口,即进行 DML 和 DDL 操作。
- 9066 数据库管理端口,即 mycat 服务管理控制功能,用于管理mycat的整个集群状态
连接MyCat的管理控制台:
mysql -h 192.168.226.100 -P 9066 -p123456
常用命令
命令 | 含义 |
---|---|
show @@help | 查看Mycat管理工具帮助文档 |
show @@version | 查看Mycat的版本信息 |
reload @@config | 重新加载Mycat的配置文件 |
show @@datasource | 查看Mycat的数据源信息 |
show @@datanode | 查看MyCat现有的分片节点信息 |
show @@threadpool | 查看Mycat的线程池信息 |
show @@sql | 查看当前执行的SQL语句(可能受限于日志级别和配置) |
show @@sql.sum | 查看执行的SQL统计信息(如执行次数、时间等) |
更多参数命令(个别可能官方也未实现)
指令(英文) | 描述(中文) |
---|---|
show @@time.current | 报告当前时间戳 |
show @@time.startup | 报告启动时间戳 |
show @@version | 报告MyCat服务器版本 |
show @@server | 报告服务器状态 |
show @@threadpool | 报告线程池状态 |
show @@database | 报告数据库列表 |
show @@datanode | 报告数据节点 |
show @@datanode where schema = ? | 按架构报告数据节点 |
show @@datasource | 报告数据源 |
show @@datasource where dataNode = ? | 按数据节点报告数据源 |
show @@datasource.synstatus | 报告数据源数据同步状态 |
show @@datasource.syndetail where name=? | 报告数据源数据同步详情 |
show @@datasource.cluster | 报告数据源集群变量 |
show @@processor | 报告处理器状态 |
show @@command | 报告命令状态 |
show @@connection | 报告连接状态 |
show @@cache | 报告系统缓存使用情况 |
show @@backend | 报告后端连接状态 |
show @@session | 报告前端会话详情 |
show @@connection.sql | 报告连接SQL |
show @@sql.execute | 报告执行状态 |
show @@sql.detail where id = ? | 报告执行详情状态 |
show @@sql | 报告SQL列表 |
show @@sql.high | 报告高频SQL |
show @@sql.slow | 报告慢SQL |
show @@sql.resultset | 报告大结果集SQL |
show @@sql.sum | 报告用户读写统计 |
show @@sql.sum.user | 报告用户读写统计 |
show @@sql.sum.table | 报告表读写统计 |
show @@parser | 报告解析器状态 |
show @@router | 报告路由状态 |
show @@heartbeat | 报告心跳状态 |
show @@heartbeat.detail where name=? | 报告心跳当前详情 |
show @@slow where schema = ? | 按架构报告慢SQL |
show @@slow where datanode = ? | 按数据节点报告慢SQL |
show @@sysparam | 报告系统参数 |
show @@syslog limit=? | 报告系统日志 |
show @@white | 显示MyCat白名单主机 |
show @@white.set=?,? | 设置MyCat白名单主机 |
show @@directmemory=1 or 2 | 显示MyCat直接内存使用情况 |
show @@check_global -SCHEMA= ? -TABLE=? -retry=? -interval=? | 检查MyCat全局表一致性 |
switch @@datasource name:index | 切换数据源 |
kill @@connection id1,id2,... | 杀死指定连接 |
stop @@heartbeat name:time | 暂停数据节点心跳 |
reload @@config | 从文件重新加载基本配置 |
reload @@config_all | 从文件重新加载所有配置 |
reload @@route | 从文件重新加载路由配置 |
reload @@user | 从文件重新加载用户配置 |
reload @@sqlslow= | 设置慢SQL时间(ms) |
reload @@user_stat | 重置显示SQL统计 |
rollback @@config | 从内存回滚所有配置 |
rollback @@route | 从内存回滚路由配置 |
rollback @@user | 从内存回滚用户配置 |
reload @@sqlstat=open | 开启实时SQL统计分析器 |
reload @@sqlstat=close | 关闭实时SQL统计分析器 |
offline | 将MyCat状态更改为OFF |
online | 将MyCat状态更改为ON |
clear @@slow where schema = ? | 按架构清除慢SQL |
clear @@slow where datanode = ? | 按数据节点清除慢SQL |
MyCat-web
介绍
Mycat-web(Mycat-eye)是对mycat-server提供监控服务,功能不局限于对mycat-server使 用。他通过JDBC连接对Mycat、Mysql监控,监控远程服务器(目前仅限于linux系统)的cpu、内 存、网络、磁盘。
Mycat-eye运行过程中需要依赖zookeeper,因此需要先安装zookeeper。
安装Zookeeper
链接:https://pan.baidu.com/s/1c0Q3q8K-jAdJEdMCrw8lRw?pwd=og6g
提取码:og6g
上传安装包zookeeper-3.4.6.tar.gz
解压
tar -zxf zookeeper-3.4.6.tar.gz -C /usr/local/
创建数据存放目录
cd /usr/local/zookeeper-3.4.6/ && mkdir data
修改配置文件名称并配置
mv ./conf/zoo_sample.cfg ./conf/zoo.cfg
配置数据存放目录
[root@master zookeeper-3.4.6]# vim ./conf/zoo.cfg # 修改下述改行配置项
dataDir=/usr/local/zookeeper-3.4.6/data
启动Zookeeper
bin/zkServer.sh start
bin/zkServer.sh status
安装Mycat-web
上传安装包 Mycat-web.tar.gz
解压
tar -zxf Mycat-web.tar.gz -C /usr/local/
[root@master ~]# cd /usr/local/mycat-web/
[root@master mycat-web]# ll
总用量 28
drwxr-xr-x 2 root root 45 10月 20 2015 etc
drwxr-xr-x 3 root root 135 10月 20 2015 lib
drwxr-xr-x 7 root root 168 1月 2 2017 mycat-web
-rwxr-xr-x 1 root root 116 10月 20 2015 readme.txt
-rwxr-xr-x 1 root root 17125 10月 20 2015 start.jar
-rwxr-xr-x 1 root root 381 10月 20 2015 start.sh
目录介绍
etc ----> jetty配置文件
lib ----> 依赖jar包
mycat-web ----> mycat-web项目
readme.txt
start.jar ----> 启动jar
start.sh ----> linux启动脚本
配置
开启MyCat的实时统计功能(server.xml) 找打这个配置项,将0改为1,即可开启。
<property name="useSqlStat">1</property> <!-- 1为开启实时统计、0为关闭 -->
然后在管理端重载配置即可不用重启mycat
# 登录管理端
mysql -h 192.168.226.100 -P 9066 -p123456
# 执行这句sql可重新加载配置 reload @@config;
启动
nohup sh start.sh &
备注:
如果Zookeeper与Mycat-web不在同一台服务器上 , 需要设置Zookeeper的地址 ; 在/usr/local/mycat-web/mycat-web/WEB-INF/classes/mycat.properties文件中配置的端口 :
浏览器访问:http://192.168.226.100:8082/mycat/