Mysql系列九:使用zookeeper管理远程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.propertiesvim usrlocalmycatconfmyid.properties loadZk.:mycatcluster db same server,will reset minCon dn2,dn3myid.properties配置说明:
clusterNodes=mycat_fz_01,mycat_fz_03 3.?使用Mycat脚本初始化mycat在ZK中的节点数据usrlocalmycatbininit_zk_data.sh? 4. 启动mycatusrlocalmycatbinmycat start? 5. 连接mycat,查看当前数据库中表的情况mysql uroot pdigdeep P8066 h192..? 6. 使用zookeeper的客户端工具ZooInspector连接zookeeper修改mycat配置文件?6.1?进入目录E:softwaredevtoolsZKZooInspectorbuild,运行zookeeper-dev-ZooInspector.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-webtar -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:2181mycat_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"}] sqlu4E0Au7EBFu76F8u5173u914Du7F6Esqlonline.server=192.168.80.128 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 03)关掉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,dn34) 重启mycat ../bin/mycat restart5) 连接mycat,并创建employee表,并插入数据 mysql -uroot -pdigdeep -P8066 -h192.168.152.128 () ((( employee(id,name,sharding_id,company_id) ( value MYCATSEQ_GLOBAL,,, employee(id,,, employee(id,, employee(id,, employee(id,, employee(id,,,,,,,,,,,,,,,,,,,,,);可以看到插入了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 #schema1sampleTESTDB<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..? 参考文章: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |