目录
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的管理控制台:
            
            
              bash
              
              
            
          
          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
解压
            
            
              bash
              
              
            
          
          tar -zxf zookeeper-3.4.6.tar.gz -C /usr/local/
        创建数据存放目录
            
            
              bash
              
              
            
          
          cd /usr/local/zookeeper-3.4.6/ && mkdir data
        修改配置文件名称并配置
            
            
              bash
              
              
            
          
          mv ./conf/zoo_sample.cfg ./conf/zoo.cfg
        配置数据存放目录
            
            
              bash
              
              
            
          
          [root@master zookeeper-3.4.6]# vim ./conf/zoo.cfg  # 修改下述改行配置项
dataDir=/usr/local/zookeeper-3.4.6/data
        启动Zookeeper
            
            
              bash
              
              
            
          
          bin/zkServer.sh start
bin/zkServer.sh status
        安装Mycat-web
上传安装包 Mycat-web.tar.gz
解压
            
            
              bash
              
              
            
          
          tar -zxf Mycat-web.tar.gz -C /usr/local/
        
            
            
              bash
              
              
            
          
          [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,即可开启。
            
            
              XML
              
              
            
          
          	<property name="useSqlStat">1</property>  <!-- 1为开启实时统计、0为关闭 -->
        然后在管理端重载配置即可不用重启mycat
            
            
              bash
              
              
            
          
          # 登录管理端
mysql -h 192.168.226.100 -P 9066 -p123456
# 执行这句sql可重新加载配置   reload @@config;
        启动
            
            
              bash
              
              
            
          
          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/





