mycat分布式mysql中间件(管理监控与命令)

管理监控命令


MyCAT自身有类似其他数据库的管理监控方式,通过Mysql命令行,登录管理端口(9066)执行相应的SQL,进行管理

     mysql -utest -ptest -P9066

  或:mysql -h127.0.0.1 -utest -ptest -P9066
        show 

     show @@help

此命令会显示所有的管理监控命令,另外请参照《Mycat命令行监控指南.docx》这个文档来深入了解。

2.1 监控命令汇总

show @@help;”命令的运行结果如下所示:

mysql> show @@help;
+--------------------------------------+-----------------------------------+
| STATEMENT                            | DESCRIPTION                       |
+--------------------------------------+-----------------------------------+
| clear @@slow where datanode = ?      | Clear slow sql by datanode        |
| clear @@slow where schema = ?        | Clear slow sql by schema          |
| kill @@connection id1,id2,        | Kill the specified connections    |
| offline                              | Change MyCat status to OFF        |
| online                               | Change MyCat status to ON         |
| reload @@config                      | Reload all config from file       |
| reload @@route                       | Reload route config from file     |
| reload @@user                        | Reload user config from file      |
| rollback @@config                    | Rollback all config from memory   |
| rollback @@route                     | Rollback route config from memory |
| rollback @@user                      | Rollback user config from memory |
| show @@backend                       | Report backend connection status |
| show @@command                       | Report commands status            |
| show @@connection                    | Report connection status          |
| show @@connection.sql                | Report connection sql             |
| show @@database                      | Report databases                  |
| show @@datanode                      | Report dataNodes                  |
| show @@datanode where schema = ?     | Report dataNodes                  |
| show @@datasource                    | Report dataSources                |
| show @@datasource where dataNode = ? | Report dataSources                |
| show @@heartbeat                     | Report heartbeat status           |
| show @@parser                        | Report parser status              |
| show @@processor                     | Report processor status           |
| show @@router                        | Report router status              |
| show @@server                        | Report server status              |
| show @@slow where datanode = ?       | Report datanode slow sql          |
| show @@slow where schema = ?         | Report schema slow sql            |
| show @@sql where id = ?              | Report specify SQL                |
| show @@sql.detail where id = ?       | Report execute detail status      |
| show @@sql.execute                   | Report execute status             |
| show @@sql.slow                     | Report slow SQL                   |
| show @@threadpool                    | Report threadPool status          |
| show @@time.current                  | Report current timestamp          |
| show @@time.startup                  | Report startup timestamp          |
| show @@version                       | Report Mycat Server version       |
| stop @@heartbeat name:time           | Pause dataNode heartbeat          |
| switch @@datasource name:index       | Switch dataSource                 |
+--------------------------------------+-----------------------------------+
37 rows in set (0.02 secs)


2.2 常用监控命令

常用的监控命令如下所示:

2.2.1 reload @@config

MyCAT的命令行监控窗口运行:

reload @@config;

该命令用于更新配置文件,例如更新schema.xml文件后在命令行窗口输入该命令,可不用重启即进行配置文件更新。运行结果参考如下:

mysql> reload @@config;
Query OK, 
1 row affected (0.29 sec)
Reload config success


 

2.2.2 show @@database

MyCAT的命令行监控窗口运行:

show @@database;

该命令用于显示MyCAT的数据库的列表,对应schema.xml配置文件的schema子节点,参考运行结果如下:

mysql> show @@database;
+------------+
| DATABASE   |
+------------+
| photo      |
| test_mycat |
| weixin     |
| yixin      |
+------------+
4 rows in set (0.00 sec)

 

2.2.3 show @@datanode

MyCAT的命令行监控窗口运行:

show @@datanode;

该命令用于显示MyCAT的数据节点的列表,对应schema.xml配置文件的dataNode节点,参考运行结果如下:

mysql> show @@datanode;
+--------+--------------------+-------+-------+--------+------+------+---------+------------+----------+---------+--------------+
|NAME|DATHOST|INDEX|TYPE|ACTIVE|IDLE|SIZE|EXECUTE|TOTAL_TIME|MAX_TIME|MAX_SQL|RECOVERY_TIME|
+--------+--------------------+-------+-------+--------+------+------+---------+------------+----------+---------+---------------+
|photo|testhost/photo|0|mysql|0|7|1000|0|0|0|0|-1|
|user0|testhost/eip_user0|0|mysql|0|7|1000|5|0|0|0|-1|
|user1|testhost/eip_user1|0|mysql|0|7|1000|1|0|0|0|-1|
|user2|testhost/eip_user2|0|mysql|0|7|1000|1|0|0|0|-1|
|user3|testhost/eip_user3|0|mysql|0|7|1000|1|0|0|0|-1|
|weixin|testhost/weixin|0|mysql|0|7|1000|0|0|0|0|-1|
|yixin|testhost/yixin|0|mysql|0|7|1000|0|0|0|0|-1|
+--------+--------------------+-------+-------+--------+------+------+---------+------------+----------+---------+---------------+
7 rows in set (0.05 sec)

其中,“NAME”表示dataNode的名称;“dataHost”表示对应dataHost属性的值,即数据主机;“ACTIVE”表示活跃连接数;“IDLE”表示闲置连接数;“SIZE”对应总连接数量。

运行如下命令,可查找对应的schema下面的dataNode列表:

show @@datanode where schema = ?

该命令的执行结果参考如下:

mysql> show @@datanode where schema = test_mycat;
+-------+--------------------+-------+-------+--------+------+------+---------+------------+----------+---------+---------------+
|NAME|DATHOST|INDEX|TYPE|ACTIVE|IDLE|SIZE|EXECUTE|TOTAL_TIME|MAX_TIM| MAX_SQL|RECOVERY_TIME|
+-------+--------------------+-------+-------+--------+------+------+---------+------------+----------+---------+---------------+
|user0|testhost/eip_user0|0|mysql|0|6|1000|5|0|0|0|-1|
|user1|testhost/eip_user1|0|mysql|0|6|1000|1|0|0|0|-1|
|user2|testhost/eip_user2|0|mysql|0|6|1000|1|0|0|0|-1|
|user3|testhost/eip_user3|0|mysql|0|6|1000|1|0|0|0|-1|
+-------+--------------------+-------+-------+--------+------+------+---------+------------+----------+---------+---------------+
4 rows in set (0.00 sec)


 

2.2.4 show @@heartbeat

         该命令用于报告心跳状态,参考运行结果如下所示:

mysql> show @@heartbeat;
+--------+-------+--------------+------+---------+-------+--------+---------+----------------+---------------------+-------+
|NAME|TYPE|HOST|PORT|RS_CODE|RETRY|STATUS|TIMEOUT|EXECUTE_TIME|LAST_ACTIVE_TIME|STOP|
+--------+-------+--------------+------+---------+-------+--------+---------+----------------+---------------------+-------+
|hostM1|mysql|localhost|3306|1|0|idle|30000|0,2001,1445|2014-12-26 12:11:05|false|
|hostM3|mysql|localhost|3306|1|0|idle|30000|5003,5168,4278|2014-12-26 12:11:05|false|
|hostM2|mysql|10.18.96.144|3306|1|0|idle|30000|5,3,2|2014-12-26 12:11:05|false|
|hostM4|mysql|10.18.96.144|3306|1|0|idle|30000|2,2,2|2014-12-26 12:11:05|false|
+--------+-------+--------------+------+---------+-------+--------+---------+----------------+---------------------+-------+
4 rows in set (0.01 sec)


2.2.5 show @@version

         该命令用于获取MyCAT的版本,参考运行结果如下所示:

mysql> show @@version;
+------------------+
| VERSION          |
+------------------+
| 5.1.48-mycat-1.2 |
+----------------+
1 row in set (0.00 sec)

 

2.2.6 show @@sql.slow

         该命令用于查询运行缓慢的SQL语句,参考运行结果如下所示:

mysql> show @@sql.slow;
Empty 
set (0.00 sec)


2.2.7 show @@connection

         该命令用于获取连接状态,参考运行结果如下所示:

 

mysql> show @@connection;
+------------+------+-----------+------+------------+------------+---------+----
--
--+---------+---------------+-------------+------------+
|PROCESSOR|ID|HOST|PORT|LOCAL_PORT|SCHEMA|CHARSET|NET_IN|NET_OUT|ALIVE_TIME(S)|RECV_BUFFER|SEND_QUEUE|
+------------+------+-----------+------+------------+------------+---------+----
--
--+---------+---------------+-------------+------------+
|Processor0|5|127.0.0.1|8066|54448|test_mycat|utf8|320|44674|225|4096|0|
|Processor3|6|127.0.0.1|9066|54432|NULL|utf8|162|741|459|4096|0|
+------------+------+-----------+------+------------+------------+---------+----
--
--+---------+---------------+-------------+------------+

2 rows in set (0.04 sec)


注意:目前针对慢 sql 查询等性能方面的几个命令暂未实现。