一、安装 2、解压 解压安装包,-C
指定安装目录
1 tar -zxvf Mycat-server-1.6.7.5-release-20200422133810-linux.tar.gz -C /usr/local
3、前台启动 进入mycat的bin目录下执行启动cd /usr/local/mycat/bin
通过执行./mycat help
查看相关命令,其中console
为控制台启动,其余命令为后台操作
./mycat console
控制台启动后,如图可以看到缺少日志目录而报错
查看mycat目录,确实没有logs层级需要mkdir /usr/local/mycat/logs
创建对应的层级目录
4、登录 mycat有两个端口,9066
是管理控制台端口、8066
是操作端口
1 2 -- 使用8066端口连接mycat mysql -uroot -pRoot_123 -P 8066
5、环境变量 配置环境变量,可以在任意地方直接使用mycat
命令
1 2 3 4 5 6 7 vi /etc/profile export MYCAT_HOME=/usr/local /mycatexport PATH=$PATH :$JAVA_HOME /bin:$MYCAT_HOME /binsource /etc/profile
6、配置 6.1、server.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mycat :server SYSTEM "server.dtd" > <mycat:server xmlns:mycat ="http://io.mycat/" > <user name ="root" defaultAccount ="true" > <property name ="password" > Root_123</property > <property name ="schemas" > TESTDB</property > <property name ="defaultSchema" > TESTDB</property > </user > </mycat:server >
6.2、schema.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 <?xml version="1.0"?> <!DOCTYPE mycat :schema SYSTEM "schema.dtd" > <mycat:schema xmlns:mycat ="http://io.mycat/" > <schema name ="TESTDB" checkSQLschema ="false" sqlMaxLimit ="100" dataNode ="dn1" > </schema > <dataNode name ="dn1" dataHost ="host1" database ="mytest" /> <dataHost name ="host1" maxCon ="1000" minCon ="10" balance ="0" writeType ="0" dbType ="mysql" dbDriver ="native" switchType ="1" slaveThreshold ="100" > <heartbeat > select user()</heartbeat > <writeHost host ="hostM1" url ="192.168.243.131:3306" user ="root" password ="Root_123" > <readHost host ="hostS1" url ="192.168.243.132:3306" user ="root" password ="Root_123" > </readHost > </writeHost > </dataHost > </mycat:schema >
6.3、负载策略
balance=0:不开启读写分离机制,所有读操作都发送到当前可用的writehost上
balance=1:全部的readhost和stand by writehost参与select 语句的负载均衡,简单的说,当双主双从模式下,其他的节点都参与select语句的负载均衡
balance=2:所有读操作都随机的在writehost,readhost上分发
balance=3:所有读请求随机的分发到readhost执行,writehost不负担读压力
修改balance="2"
,mycat restart
重启mycat,测试负载情况
7、后台启动 mycat start
mycat status
查看状态
二、mycat的高可用 在之前的操作中,我们已经实现了mysql机器的高可用,可以动态切换master,那么如果mycat崩溃了呢?我们应该如何处理呢?所以此时就需要搭建mycat的高可用集群了。
在mycat的权威指南中,介绍了多种高可用的方案,在这里我们讲解一种使用最多的方案,使用HAProxy+Keepalived配合使用来实现myact的高可用。
HAproxy实现了mycat多借点的集群高可用和负载均衡,而HAProxy自身的高可用则可以通过Keepalived来实现。
编号
角色
IP地址
机器名
1
mycat1
192.168.243.131
node01
2
mycat2
192.168.243.132
node02
3
HAProxy(master)
192.168.243.133
node03
4
Keepalived(master)
192.168.243.133
node03
5
HAProxy(backup)
192.168.243.135
node04
6
keepalived(backup)
192.168.243.135
node04
1、安装配置HAProxy 在node-3和node-4安装HAProxy
1.1、准备好HAProxy的安装包 1.2、解压到/usr/local目录 1 tar -zxvf haproxy-1.8.25.tar.gz -C /usr/local
1.3、进入到解压后的目录,查看内核版本,进行编译 1 2 3 cd /usr/local /haproxy-1.8.25/uname -r make TARGET=generic
1.4、编译完成之后,开始进行安装 1 make install PREFIX=/usr/local /haproxy
1.5、安装完成之后,创建目录,创建HAProxy配置文件 1 2 3 mkdir -p /usr/data/haproxy mkdir /usr/local /haproxy/conf vi /usr/local /haproxy/conf/haproxy.conf
1.6、向配置文件中添加配置信息 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 global log 127.0.0.1 local0 maxconn 4096 chroot /usr/local /haproxy pidfile /usr/data/haproxy/haproxy.pid uid 99 gid 99 daemon defaults log global mode tcp option abortonclose option redispatch retries 3 maxconn 2000 timeout connect 5000 timeout client 50000 timeout server 50000 listen proxy_status bind :48066 mode tcp balance roundrobin server mycat_1 192.168.243.131:8066 check inter 10s server mycat_2 192.168.242.132:8066 check inter 10s frontend admin_stats bind :7777 mode http stats enable option httplog maxconn 10 stats refresh 30s stats uri /admin stats auth admin:123123 stats hide-version stats admin if TRUE
1.7、启动haproxy服务 1 /usr/local /haproxy/sbin/haproxy -f /usr/local /haproxy/conf/haproxy.conf
1.8、查看haproxy的进程,如果存在则说明没有问题
1.9、打开浏览器访问,用户名为admin,密码为123123 http://192.168.85.113:7777/admin
1.10、任一连接一台haproxy登录访问 1 2 mysql -uroot -pRoot_123 -h192.168.243.133 -P48066 mysql -uroot -pRoot_123 -h192.168.243.134 -P48066
2、安装配置Keepalived 在node-3和node-4安装Keepalived
2.1、准备好Keepalived安装包 2.2、解压到/usr/local目录 1 tar -zxvf keepalived-1.4.5.tar.gz -C /usr/local
2.3、安装需要依赖的环境组件 1 yum install gcc openssl-devel popt-devel -y
2.4、进入到解压目录,进行编译 1 ./configure --prefix=/usr/local /keepalived
2.5、编译完成之后,进行安装
2.6、将keepalived的服务注册为系统服务 1 2 3 4 5 cp /usr/local /keepalived-1.4.5/keepalived/etc/init.d/keepalived /etc/init.d/ mkdir /etc/keepalived cp /usr/local /keepalived/etc/keepalived/keepalived.conf /etc/keepalived/ cp /usr/local /keepalived-1.4.5/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ cp /usr/local /keepalived/sbin/keepalived /usr/sbin/
2.7、修改配置文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 cd etc/keepalived/vi keepalived.conf ! Configuration File for keepalived global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_DEVEL vrrp_skip_check_adv_addr vrrp_garp_interval 0 vrrp_gna_interval 0 } vrrp_instance VI_1 { state MASTER interface ens33 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.243.100/24 dev ens33 label ens33:3 } }
2.8、启动keepalived 1 service keepalived start
2.9、登录验证 1 mysql -uroot -pRoot_123 -h 192.168.243.100 -P 48066
三、mycat监控工具 mycat-web是mycat可视化运维管理和监控平台,弥补了mycat在监控上的空白。帮mycat分担统计任务和配置管理任务。mycat-web引入了zookeeper作为配置中心,可以管理多个节点。mycat-web主要管理和监控mycat的流量、连接、活动现成和内存等,具备IP白名单、邮件告警等模块,还可以统计SQL并分析慢SQL和高频SQL等,为SQL的优化提供了依据。
1、安装zookeeper 1 2 3 4 5 6 7 8 1、下载zookeeper安装包3.6.1 2、安装拷贝到/usr/local目录,并解压 3、进入到zookeeper解压后的目录conf,复制配置文件并改名 cp zoo_sample.cfg zoo.cfg 4、进入到zookeeper的bin目录,运行启动命令 ./zkServer.sh start 5、执行如下命令,看zookeeper是否正常启动 netstat -nlpt | grep 2181
2、安装mycat-web 1 2 3 4 5 6 7 8 1、下载mycat-web安装包1.0 2、解压安装包到/usr/local目录 3、进入mycat-web的目录运行启动命令 ./start.sh & 4、mycat-web的服务端口是8082,查看服务是否启动 netstat -nlpt | grep 8082 5、通过地址访问服务 192.168.85.111:8082/mycat/
3、mycat-web配置 1 2 3 4 1、配置zookeeper 进入到mycat-web的/usr/local/mycat-web/mycat-web/WEB-INF/classes,修改mycat.properties文件,可以修改zookeeper的地址 2、添加mycat实例 在页面的mycat配置--》mycat服务管理中添加mycat实例,需要填写相关的参数