管理mycat命令詳解


mycat監聽兩個端口,分別為8066和9066;mycat服務默認的數據端口是8066,而9066端口則是mycat管理端口,用於管理mycat的整個集群狀態。監聽的端口可以在server.xml配置文件中修改。

連接管理端口的方法和連接8066端口的方法基本一樣。

[root@test1 conf]# mysql -uroot -P9066 -h127.0.0.1  -p123456            #大寫的P指定管理端口
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 19
Server version: 5.6.29-mycat-1.6-RELEASE-20161028204710 MyCat Server (monitor)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show @@help;               #查看使用的命令

下面來介紹管理端口中使用的命令:

  • reload命令:  
    • 重新加載配置文件,在修改完配置文件之后,不用重啟mycat,可以使用如下命令重新加載:
      mysql> reload @@config;
      Query OK, 1 row affected (0.08 sec)
      Reload config success
    • 從mycat1.5開始新增開啟和關閉sql監控分析的指令,需要在QPS測試時關閉SQL監控分析功能,否則測試結果會很差。
      開啟SQL監控分析功能:    reload @@sqlstat=open.
      關閉SQL監控分析功能:    reload @@sqlstat=close.
      設置慢SQL時間閾值:      reload @@sqlslow= 
      重置SQL監控分析的數據:  reload @@user_stat :這個命令用於清除緩存。改命令工作在9066端口,用來將客戶端執行
      show @@sql; show @@sql.sum;show@@slow.success;命令之后的緩存信息清除、 
  • show命令:
    • 顯示mycat數據庫列表,顯示列表對應schema.xml配置文件中的schema子節點。
      mysql> show @@database;
      +----------+
      | DATABASE |
      +----------+
      | TESTDB   |
      +----------+
      1 row in set (0.02 sec)

       

    • 顯示mycat數據節點列表,顯示列表對應schema.xml配置文件中的dataNode節點。
      mysql> show @@dataNode;
      +------+---------------------+-------+-------+--------+------+------+---------+------------+----------+---------+---------------+
      | NAME | DATHOST             | INDEX | TYPE  | ACTIVE | IDLE | SIZE | EXECUTE | TOTAL_TIME | MAX_TIME | MAX_SQL | RECOVERY_TIME |
      +------+---------------------+-------+-------+--------+------+------+---------+------------+----------+---------+---------------+
      | dn1  | backup-one/mytest   |     0 | mysql |      0 |   10 | 1000 |    5675 |          0 |        0 |       0 |            -1 |
      | dn2  | backup-two/mytest   |     0 | mysql |      0 |   10 | 1000 |    5669 |          0 |        0 |       0 |            -1 |
      | dn3  | backup-three/mytest |     0 | mysql |      0 |   10 | 1000 |    5672 |          0 |        0 |       0 |            -1 |
      +------+---------------------+-------+-------+--------+------+------+---------+------------+----------+---------+---------------+
      3 rows in set (0.01 sec)
      
      #NAME:表示dataNode的名稱。
      #DATAHOST:表示對應的datahost屬性的值,即數據主機。
      #ACTIVE:表示活躍的連接數量,IDLE:表示空閑的連接數量。SIZE:表示對應的總連接數量。

      這個命令可以和where子句結合,查找對應schema的節點數量。
      因為這里只有一個schema,因此顯示的結果一樣的。
      mysql> show @@dataNode where schema=TESTDB;
      +------+---------------------+-------+-------+--------+------+------+---------+------------+----------+---------+---------------+
      | NAME | DATHOST             | INDEX | TYPE  | ACTIVE | IDLE | SIZE | EXECUTE | TOTAL_TIME | MAX_TIME | MAX_SQL | RECOVERY_TIME |
      +------+---------------------+-------+-------+--------+------+------+---------+------------+----------+---------+---------------+
      | dn1  | backup-one/mytest   |     0 | mysql |      0 |   10 | 1000 |    5703 |          0 |        0 |       0 |            -1 |
      | dn2  | backup-two/mytest   |     0 | mysql |      0 |   10 | 1000 |    5697 |          0 |        0 |       0 |            -1 |
      | dn3  | backup-three/mytest |     0 | mysql |      0 |   10 | 1000 |    5700 |          0 |        0 |       0 |            -1 |
      +------+---------------------+-------+-------+--------+------+------+---------+------------+----------+---------+---------------+
      3 rows in set (0.00 sec)

       

    • 檢查心跳狀態。
      mysql> show @@heartbeat;
      +--------+-------+--------------+------+---------+-------+--------+---------+--------------+---------------------+-------+
      | NAME   | TYPE  | HOST         | PORT | RS_CODE | RETRY | STATUS | TIMEOUT | EXECUTE_TIME | LAST_ACTIVE_TIME    | STOP  |
      +--------+-------+--------------+------+---------+-------+--------+---------+--------------+---------------------+-------+
      | hostS3 | mysql | 10.0.102.204 | 3306 |       1 |     0 | idle   |       0 | 2,1,1        | 2019-01-18 22:51:16 | false |
      | hostS2 | mysql | 10.0.102.221 | 3306 |       1 |     0 | idle   |       0 | 1,1,1        | 2019-01-18 22:51:16 | false |
      | hostS1 | mysql | 10.0.102.222 | 3306 |       1 |     0 | idle   |       0 | 1,1,1        | 2019-01-18 22:51:16 | false |
      +--------+-------+--------------+------+---------+-------+--------+---------+--------------+---------------------+-------+
      3 rows in set (0.01 sec)
      
      RS_CODE狀態如下:
          OK_STATUS=1代表正常狀態。
          ERROR_STATUS =-1 代表連接錯誤
          TIMEOUT_STATUS=-2代表連接超時
          INIT_STATUS=0代表初始化狀態
      若節點發生故障,則會連續進行默認的5個周期檢測,心跳連接失敗后就會變成-1,節點故障確認,然后可能發生切換。

       

    • 顯示mycat的版本號
      mysql> show @@version;
      +-----------------------------------------+
      | VERSION                                 |
      +-----------------------------------------+
      | 5.6.29-mycat-1.6-RELEASE-20161028204710 |
      +-----------------------------------------+
      1 row in set (0.01 sec)
      
      mysql> 

       

    • 該命令用於獲取mycat當前連接狀態,即應用於mycat的連接。
      mysql> show @@connection;
      +------------+------+--------------+------+------------+------+--------+---------+--------+---------+---------------+-------------+------------+---------+------------+
      | PROCESSOR  | ID   | HOST         | PORT | LOCAL_PORT | USER | SCHEMA | CHARSET | NET_IN | NET_OUT | ALIVE_TIME(S) | RECV_BUFFER | SEND_QUEUE | txlevel | autocommit |
      +------------+------+--------------+------+------------+------+--------+---------+--------+---------+---------------+-------------+------------+---------+------------+
      | Processor2 |   20 | 127.0.0.1    | 9066 |      53951 | root | NULL   | utf8:33 |    305 |    3169 |           897 |        4096 |          0 |         |            |
      | Processor3 |   21 | 10.0.102.204 | 8066 |      31165 | root | NULL   | utf8:33 |     99 |     198 |             3 |        4096 |          0 | 3       | true       |
      +------------+------+--------------+------+------------+------+--------+---------+--------+---------+---------------+-------------+------------+---------+------------+
      2 rows in set (0.00 sec)
      
      mysql> 

       

       

    • 用於強制關閉連接,id值可由show @@connection命令查看。
      mysql> kill @@connection 21;
      Query OK, 0 rows affected (0.01 sec)

       

    • 查看后端連接狀態:
      mysql> show @@backend;
      +------------+------+---------+--------------+------+--------+--------+---------+-------+--------+----------+------------+--------+----------+---------+------------+
      | processor  | id   | mysqlId | host         | port | l_port | net_in | net_out | life  | closed | borrowed | SEND_QUEUE | schema | charset  | txlevel | autocommit |
      +------------+------+---------+--------------+------+--------+--------+---------+-------+--------+----------+------------+--------+----------+---------+------------+
      | Processor0 |   12 |     121 | 10.0.102.221 | 3306 |  23186 |  45568 |   10848 | 59005 | false  | false    |          0 | mytest | utf8:33  | 3       | true       |
      | Processor0 |   20 |     126 | 10.0.102.221 | 3306 |  23195 |  45668 |   10797 | 59005 | false  | false    |          0 | mytest | utf8:33  | 3       | true       |
      | Processor0 |   28 |     126 | 10.0.102.222 | 3306 |  58192 |  45673 |   10907 | 59005 | false  | false    |          0 | mytest | utf8:33  | 3       | true       |
      | Processor0 |    8 |      86 | 10.0.102.204 | 3306 |  19028 |  43028 |   10814 | 59005 | false  | false    |          0 | mytest | utf8:33  | 3       | true       |
      | Processor0 |   16 |     128 | 10.0.102.221 | 3306 |  23193 |  45731 |   10750 | 59005 | false  | false    |          0 | mytest | utf8:33  | 3       | true       |
      | Processor0 |   24 |     121 | 10.0.102.222 | 3306 |  58187 |  48792 |   10856 | 59005 | false  | false    |          0 | mytest | utf8:33  | 3       | true       |
      | Processor0 |    4 |      79 | 10.0.102.204 | 3306 |  19021 |  41697 |   10810 | 59005 | false  | false    |          0 | mytest | utf8:33  | 3       | true       |
      | Processor1 |   13 |     123 | 10.0.102.221 | 3306 |  23189 |  45908 |   10756 | 59005 | false  | false    |          0 | mytest | utf8:33  | 3       | true       |
      | Processor1 |    5 |      82 | 10.0.102.204 | 3306 |  19024 |  42684 |   10797 | 59005 | false  | false    |          0 | mytest | utf8:33  | 3       | true       |
      | Processor1 |   25 |     128 | 10.0.102.222 | 3306 |  58194 |  45750 |   10743 | 59005 | false  | false    |          0 | mytest | latin1:5 | 3       | true       |
      | Processor1 |   17 |     125 | 10.0.102.221 | 3306 |  23191 |  46793 |   10757 | 59005 | false  | false    |          0 | mytest | utf8:33  | 3       | true       |
      | Processor1 |    9 |      87 | 10.0.102.204 | 3306 |  19029 |  42282 |   10808 | 59005 | false  | false    |          0 | mytest | utf8:33  | 3       | true       |

       

    • 用於查看mycat緩存。
      mysql> show @@cache;
      +-------------------------------------+-------+------+--------+------+------+-------------+----------+
      | CACHE                               | MAX   | CUR  | ACCESS | HIT  | PUT  | LAST_ACCESS | LAST_PUT |
      +-------------------------------------+-------+------+--------+------+------+-------------+----------+
      | SQLRouteCache                       | 10000 |    0 |      0 |    0 |    0 |           0 |        0 |
      | TableID2DataNodeCache.TESTDB_ORDERS | 50000 |    0 |      0 |    0 |    0 |           0 |        0 |
      | ER_SQL2PARENTID                     |  1000 |    0 |      0 |    0 |    0 |           0 |        0 |
      +-------------------------------------+-------+------+--------+------+------+-------------+----------+
      3 rows in set (0.01 sec)
      
          SQLRouteCache: SQL語句路由緩存
          TableID2DateNodeCache:緩存表主鍵與分片對應關系。
          ER_SQL2PARENTID:緩存ER分片中子表與父表對應關系。

       

    • 查看數據源的狀態,如果配置了主從或者多主,則可以切換。
      mysql> show @@datasource;
      +----------+--------+-------+--------------+------+------+--------+------+------+---------+-----------+------------+
      | DATANODE | NAME   | TYPE  | HOST         | PORT | W/R  | ACTIVE | IDLE | SIZE | EXECUTE | READ_LOAD | WRITE_LOAD |
      +----------+--------+-------+--------------+------+------+--------+------+------+---------+-----------+------------+
      | dn2      | hostS2 | mysql | 10.0.102.221 | 3306 | W    |      0 |   10 | 1000 |    5956 |        11 |         17 |
      | dn3      | hostS3 | mysql | 10.0.102.204 | 3306 | W    |      0 |   10 | 1000 |    5959 |        16 |         15 |
      | dn1      | hostS1 | mysql | 10.0.102.222 | 3306 | W    |      0 |   10 | 1000 |    5962 |        12 |         22 |
      +----------+--------+-------+--------------+------+------+--------+------+------+---------+-----------+------------+
      3 rows in set (0.01 sec)

      這個命令在后面讀寫分離查看狀態的時候會用到。

    •  switch @@datasource name:index 用於切換數據源

          name: schema中配置的dataHost中的name
          index: schema中配置的dataHost的writeHost index坐標,安裝從上到下的配置順序,從0開始。
      切換數據源時會將原數據所有的連接池中的連接關閉,並且從新數據源創建新的連接,此時mycat服務不可用。
      注意:reload @@config和switch @@datasource name:index命令在執行過程中mycat服務不可用,應謹慎處理,防止正在提交的事務出錯。

       

    • show @@syslog limit: 用於顯示系統日志
      mysql> show @@syslog limit=3;
      +---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
      | DATE                | LOG                                                                                                                                                                                                                                                       |
      +---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
      | 2019-01-18 23:26:58 | .687  INFO [$_NIOREACTOR-1-RW] (io.mycat.net.handler.FrontendAuthenticator.success(FrontendAuthenticator.java:194)) - ServerConnection [id=23, schema=null, host=10.0.102.204, user=root,txIsolation=3, autocommit=true, schema=null]'root' login success |
      | 2019-01-18 23:26:50 | .929  INFO [$_NIOREACTOR-0-RW] (io.mycat.net.handler.FrontendAuthenticator.success(FrontendAuthenticator.java:194)) - [thread=$_NIOREACTOR-0-RW,class=ManagerConnection,id=22,host=127.0.0.1,port=9066,schema=null]'root' login success                   |
      | 2019-01-18 23:26:33 | .159  INFO [Timer0] (io.mycat.net.AbstractConnection.close(AbstractConnection.java:508)) - close connection,reason: idle  ,[thread=Timer0,class=ManagerConnection,id=20,host=127.0.0.1,port=9066,schema=null]                                             |
      +---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
      3 rows in set (0.02 sec)
      
      端口號:該命令工作在9066端口,用來在客戶端命令窗口中顯示系統日志信息,通常用於遠程查看mycat server的日志信息。
      參數:limit=后接正整數,該數值用來限定每次顯示的日志條數的最大數值。

       

    • SQL統計命令

      show @@sql:顯示在mycat中執行過的sql語句。
      show @@sql.slow:顯示慢SQL語句。
      show @@sql.sum: 顯示sql語句的整體執行情況,讀寫比例等。



       

       

       

       

       

       

       

       

       

        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM