Mycat 常用管理命令说明

时间:2021-01-24 22:10:42

Mycat 提供了类似数据库的管理监控方式,可以通过 MySQL 命令行登陆管理端口 9066 执行相应的 SQL 语句进行管理,可以可以通过 JDBC 的方式进行远程连接管理,使用 MySQL 命令行登陆示例如下:

# mysql -h192.168.2.214 -umycat -P9066 -p123456 [-dtempdb]

-h:参数后面是主机IP

-u:是mycat配置的逻辑库的用户

-p:是mycat配置的逻辑库的用户密码

-P:是端口号

-d:是逻辑库名称

可以使用 show @@help 查询所有命令

Reload 命令

  • reload @@config

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

    Mycat 常用管理命令说明

  • reload @@config_all
    • 该命令用于更新所有配置文件,不用重启即可进行配置文件的更新,示例如下:

      Mycat 常用管理命令说明

Show 命令

  • show @@database

    该命令用于查询显示 Mycat 的数据库列表(逻辑库),示例如下:

    Mycat 常用管理命令说明

  • show @@datanode

    该命令用于查询显示 Mycat 数据节点列表,还可以通过 show @@datanode where schema = ? 的方式查询指定逻辑库(区分大小写)的数据节点,示例如下:

    Mycat 常用管理命令说明

    name:表示数据节点的名称

    datahost:表示对应的数据主机

    active:表示活动连接

    idle:表示空闲连接

    size:表示最大连接数量

  • show @@heartbeat

    该命令用于报告心跳状态,示例如下:

    Mycat 常用管理命令说明

    name:数据主机名称

    type:表示数据库类型

    host:表示主机地址

    rs_code:表示心跳状态

    • 0:INIT_STATUS 表示初始化状态
    • 1:OK_STATUS 表示正常状态
    • -1:ERROR_STATUS 表示连接出错
    • -2:TIMEOUT_STATUS 表示连接超时

    若节点发生故障,会连续进行默认5个周期的检测,心跳连续失败后会变成 -1 ,节点故障确认,然后可能发生切换

  • show @@connection

    该命令用于获取 Mycat 前端的连接状态,示例如下:

    Mycat 常用管理命令说明

    如果需要关闭连接,可以使用 kill @@connection id,id,id,… ,示例如下:

    Mycat 常用管理命令说明

  • show @@backend

    查询后端连接(Mycat 连接实际数据库)状态,示例如下:

    Mycat 常用管理命令说明

  • show @@cache

    用于查看 Mycat 缓存使用情况,示例如下:

    Mycat 常用管理命令说明

    SQLRouteCache:SQL语句路由缓存

    TableID2DataNodeCache.TESTDB_ORDERS:缓存表主键与分片的对应关系

    ER_SQL2PARENTID:缓存ER分片中子表与父表的关系

  • show @@datasource

    查看数据源的状态,如果配置了主从或者多主,则可以切换,示例如下:

    Mycat 常用管理命令说明

    如果需要切换数据源,可以使用 switch @@datasource name:index 来切换,示例如下:

    Mycat 常用管理命令说明

    name:是 schema 配置文件中,配置的 dataNode 中的 name值

    index:是 schema 配置文件中,配置的 dataNode 的 dataHost 的 writeHost 的索引,按照从上往下的配置顺序,索引从 0 开始

  • show @@sql

    查看在 Mycat 中执行过的SQL语句,需要确认 server.xml 配置文件中的 <property name="useSqlStat">1</property> ,示例如下:

    Mycat 常用管理命令说明

  • show @@sql.slow

    查看在 Mycat 中执行的比较慢的 SQL 语句,使用 reload @@sqlslow=? 来设置慢的阈值,如果需要在查询后,移除本次结果不在下次查询显示,可以在命令后 增加标识,show @@sql.slow true,示例如下:

    Mycat 常用管理命令说明

    设置执行SQL语句慢的阈值,示例如下:

    Mycat 常用管理命令说明

  • show @@sql.sum

    显示SQL语句的整体执行情况、读写比例等,示例如下:

    Mycat 常用管理命令说明