前文回顾:
《Mycat分布式数据库架构》之原理及架构
《Mycat分布式数据库架构》之搭建详解
《Mycat分布式数据库架构》之配置详解
《Mycat分布式数据库架构》之数据切分和读写分离
《Mycat分布式数据库架构》之故障切换
《Mycat分布式数据库架构》之数据切分实战
《Mycat分布式数据库架构》之全局自增ID
《Mycat分布式数据库架构》之ER分片
《Mycat分布式数据库架构》之高可用集群
在server.xml文件中可配置mycat的管理端口,默认为9066,管理用户也就是server.xml中配置的用户,如下
DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://io.mycat/">
<system>
<property name="serverPort">8066property>
<property name="managerPort">9066property>
<property name="nonePasswordLogin">0property>
<property name="bindIp">0.0.0.0property>
<property name="frontWriteQueueSize">2048property>
<property name="charset">utf8property>
<property name="txIsolation">2property>
<property name="processors">8property>
<property name="idleTimeout">1800000property>
<property name="sqlExecuteTimeout">300property>
<property name="usesqlstat">0property>
<property name="useGlobleTableCheck">0property>
<property name="sequnceHandlerType">0property>
<property name="defaultMaxLimit">100property>
<property name="maxPacketSize">104857600property>
system>
<user name="yxc">
<property name="password">yxc123456property>
<property name="schemas">mycatsproperty>
user>
<user name="user">
<property name="password">userproperty>
<property name="schemas">mycatsproperty>
<property name="readOnly">trueproperty>
user>
mycat:server>
Mycat 提供了类似数据库的管理监控方式,可以通过MySQL命令行登陆管理端口9066执行相应的SQL语句进行管理,可以通过JDBC的方式进行远程连接管理,使用 MySQL 命令行登陆示例如下:
mysql -h192.168.157.130 -uyxc -p123456 -P9066
-h:参数后面是主机IP
-u:是mycat配置的逻辑库的用户
-p:是mycat配置的逻辑库的用户密码
-P:是端口号
可以使用 show @@help 查询所有命令
• reload @@config
该命令用于更新 schema.xml 配置文件,例如更新 schema.xml 文件后在命令窗口输入该命令,不用重启即可进行配置文件的更新,示例如下:
• reload @@config_all
该命令用于更新所有配置文件,不用重启即可进行配置文件的更新,示例如下:
• show @@database
该命令用于查询显示 Mycat 的数据库列表(逻辑库),示例如下:
• show @@datanode
该命令用于查询显示 Mycat 数据节点列表,还可以通过 show @@datanode where schema = ? 的方式查询指定逻辑库(区分大小写)的数据节点,示例如下:
-name:表示数据节点的名称
datahost:表示对应的数据主机
active:表示活动连接
idle:表示空闲连接
size:表示最大连接数量
• show @@heartbeat
该命令用于报告心跳状态,示例如下:
name:数据主机名称
type:表示数据库类型
host:表示主机地址
rs_code:表示心跳状态(0:INIT_STATUS 表示初始化状态,1:OK_STATUS 表示正常状态,-1:ERROR_STATUS 表示连接出错,-2:TIMEOUT_STATUS 表示连接超时)。
若节点发生故障,会连续进行默认5个周期的检测,心跳连续失败后会变成 -1 ,节点故障确认,然后可能发生切换。
• show @@connection
该命令用于获取 Mycat 前端的连接状态,示例如下:
如果需要关闭连接,可以使用 kill @@connection id,id,id,… ,示例如下:
• show @@backend
查询后端连接(Mycat 连接实际数据库)状态,示例如下:
• show @@cache
用于查看 Mycat 缓存使用情况,示例如下:
SQLRouteCache:SQL语句路由缓存
TableID2DataNodeCache.TESTDB_ORDERS:缓存表主键与分片的对应关系
ER_SQL2PARENTID:缓存ER分片中子表与父表的关系
• show @@datasource
查看数据源的状态,如果配置了主从或者多主,则可以切换,示例如下:
如果需要切换数据源,可以使用 switch @@datasource name:index 来切换,示例如下:
name:是 schema 配置文件中,配置的 dataNode 中的 name值
index:是 schema 配置文件中,配置的 dataNode 的 dataHost 的 writeHost 的索引,按照从上往下的配置顺序,索引从 0 开始
• show @@sql
查看在 Mycat 中执行过的SQL语句,需要确认 server.xml 配置文件中的 1 ,示例如下:
• show @@sql.slow
查看在 Mycat 中执行的比较慢的 SQL 语句,使用 reload @@sqlslow=? 来设置慢的阈值,如果需要在查询后,移除本次结果不在下次查询显示,可以在命令后 增加标识,show @@sql.slow true,示例如下:
设置执行SQL语句慢的阈值,示例如下:
• show @@sql.sum
显示SQL语句的整体执行情况、读写比例等,示例如下:
除了使用mysql客户端连接到mycat管理端口来对mycat进行管理之外,还可以使用另外一个开源的管理工具mycat-web来对mycat进行管理。
Mycat-web运行也需要java运行环境,因此需要安装jdk环境,查看当前仓库的Java版本(yum -y list java*),如下图所示,建议安装当前仓库的1.8版本。
配置好环境变量后通过java -version查看当前安装完成的Java版本,如下图所示。
Zookeeper安装参考前文。
从mycat官网下载mycat-web,如下图所示,点击更多下载,找到mycat-web。
选择你所需要的版本进行下载,如下图所示。
解压
tar zxf Mycat-web-1.0-SNAPSHOT-20170102153329-linux.tar.gz
修改mycat.properties配置文件
[root@localhost mycat-web]# ls
etc lib mycat-web readme.txt start.jar start.sh
[root@localhost mycat-web]# cd mycat-web/
[root@localhost mycat-web]# ls
404.html 500.html index2.html META-INF monitor.js page resources static version.txt WEB-INF
[root@localhost mycat-web]# cd WEB-INF/
[root@localhost WEB-INF]# ls
classes db jrdsconf lib web.xml
[root@localhost WEB-INF]# cd classes/
[root@localhost classes]# ls
com jdbc.properties log4j2.xml mybatis mycat.properties org spring
[root@localhost classes]# vi mycat.properties
将zookeeper的地址改为实际安装了zookeeper的地址,本节点未安装,所以不能使用localhost,如下修改。
show.period=3000000
zookeeper=192.168.157.129:2181
mycat_warn_mail=[{"cc"\:"sohudo@mycat.io","index"\:1,"mangerPort"\:"465","smtpHost"\:"smtp.139.com","smtpPassword"\:"123456","smtpProtocol"\:"smtp","smtpUser"\:"agile_louie@139.com","to"\:"9183838@qq.com"}]
##sql\u4E0A\u7EBF\u76F8\u5173\u914D\u7F6E
sqlonline.server=192.168.80.128
sqlonline.user=root
sqlonline.passwd=123456
cd mycat-web/
./start.sh
启动之后即可访问 http://192.168.157.132:8082/mycat/。
更多技术干货,请持续关注程序员大佬超。
原创不易,转载请注明出处。