Mysql系列九:使用zookeeper管理远程Mycat配置文件、Mycat监控、Mycat数据迁移扩容

一、使用zookeeper管理远程Mycat配置文件

环境准备:

虚拟机192.168.152.130:

zookeeper,具体参考前面文章 

虚拟机192.168.152.128:

安装好Mycat,具体参考前面文章

本机:

搭建好zookeeper的客户端工具ZooInspector,具体参考文章

1. 启动ZK

.zkServer.sh start

 

2. 修改/usr/local/mycat/conf/myid.properties

vim usrlocalmycatconfmyid.properties
loadZk.:mycatcluster db same server,will reset minCon dn2,dn3

myid.properties配置说明:

clusterNodes=mycat_fz_01,mycat_fz_03

3. 使用Mycat脚本初始化mycat在ZK中的节点数据

usrlocalmycatbininit_zk_data.sh

 

4. 启动mycat

usrlocalmycatbinmycat start

 

5. 连接mycat,查看当前数据库中表的情况

mysql uroot pdigdeep P8066 h192..

 

6. 使用zookeeper的客户端工具ZooInspector连接zookeeper修改mycat配置文件

 6.1 进入目录E:\software\devtools\ZK\ZooInspector\build,运行zookeeper-dev-ZooInspector.jar;

java jar zookeeperdevZooInspector.jar

 连接远程zookeeper

连接成功以后可以看到mycat的树节点和mycat的安装后的conf目录下的schema.xml和rule.xml文件是对应的

6.2 在zookeeper管理工具里面动态修改schema配置文件新增一张逻辑表travelrecord2

保存修改,查看mycat的schema.xml配置文件,可以看到修改已经同步过来了

重启mycat,可以看到TESTDB里面有新配置的travelrecord2表

/usr/local/mycat/bin/mycat restart

 

二、Mycat监控

1. 下载Mycat-web上传到虚拟机中

http://dl.mycat.io/mycat-web-1.0/

2. 解压Mycat-web

tar -zxvf Mycat-web-1.0-SNAPSHOT-20170102153329-linux.tar.gz

 

3 修改mycat-web项目下/WEB-INF/classes/mycat.properties中zookeeper属性

vim /software/mycat-web/mycat-web/WEB-INF/classes/mycat.properties
zookeeper=192.168.152.130: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

4. 启动mycat-web

/software/mycat-web/start.sh

 

5. 访问mycat-web

访问地址:http://192.168.152.128:8082/mycat/

6. 在Mycat管理界面手动初始化Mycat配置

6.1 Mycat-配置管理。增加mycat服务器配置

 

保存,新增成功

 6.2 mycat-VM管理。配置JMX服务项

 

保存新增成功

6.3 MySQL配置管理

 

分别保存,新增成功

初始化完前面的三步,就可以对Mycat进行监控了

三、Mycat数据迁移(扩容)

以employee表作数据迁移

1. 准备工作:

1)修改employee表的分片规则为一致性hash,vim schema.xml

2)修改分布式全局唯一id方式为本地文件方式,vim server.xml

0

3)关掉ZK配置,vim myid.properties

loadZk=false zkURL=192.168.152.130:2181 clusterId=mycat-cluster-1 myid=mycat_fz_01 clusterNodes=mycat_fz_01,mycat_fz_04 #server booster ; booster install on db same server,will reset all minCon to 1 type=server boosterDataHosts=dn2,dn3

4) 重启mycat

../bin/mycat restart

5) 连接mycat,并创建employee表,并插入数据

mysql -uroot -pdigdeep -P8066 -h192.168.152.128

可以看到插入了25条数据到employee里面

然后在主库(192.168.152.130)的两个分片dn1(db1),dn2(db2)上查看employee的数据

 

可以看到dn1上有15条数据,dn2上有10条数据

2. 开始做数据迁移

当前employee表的数据分布在dn1,dn2,迁移后要分布在dn1,dn2,dn3

1)生成一个新的schema文件,文件名newSchema.xml,同时修改dataNode="dn1,dn2,dn3"(新的分片定义) 

cp

以前的schema.xml文件:

新的newSchema.xml:

 

 2)生成一个新的rule文件,文件名newRule.xml,同时修改分片数为3(新的分片规则)

cp

以前的rule.xml:

 

新的newRule.xml:

 

3)修改/usr/local/mycat/conf/migrateTables.properties文件。写明要迁移的schema和表,多张表用逗号隔开

vim migrateTables.properties
#schema1sample

TESTDB<span style="color: #808080">=<span style="color: #000000">travelrecord,company,goods

<span style="color: #ff0000">TESTDB<span style="color: #ff0000">=employee

 4)停止mycat(也可以不停止mycat)

 5)执行dataMigrate.sh开始迁移(扩容)。

# .dataMigrate.sh

 

开始执行./dataMigrate.sh 的时候报没有适合的驱动

No suitable driver found for jdbc:mysql://192.168.152.130:3306/db1 java.sql.SQLException: No suitable driver found for jdbc:mysql://192.168.152.130:3306/db1

下载jar包mysql-connector-java-5.1.6.jar,然后上传到/usr/local/mycat/lib

查看主库(192.168.152.130)三个分片dn1(db1),dn2(db2),dn3(db3)上employee表的数据

可以看到数据迁移成功

6)修改newRule.xml成为rule.xml,修改newSchema.xml为schema.xml。重启mycat

.binmycat restart

连接mycat,查看employee表的数据

mysql uroot pdigdeep P8066 h192..

 

参考文章:

相关文章

Mycat是什么?MyCat是一个开源的分布式数据库系统,是一个实...
转自:https://www.cnblogs.com/ivictor/p/5111495.html参考...
1.在数据库做好主从同步的情况下搭建mycat。下载mycat,解压...
集群的服务器列表在10.11.0.210和10.11.0.216中部署mycat和h...
Mycat是什么?·一个彻底开源的,面向企业应用开发的大数据库...
<system>配置Mycat系统参数 <system>  <p...