HAProxy 是一款提供高可用性、负载均衡以及基于 TCP(第四层)和 HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。
MyCat 服务主机上需要开放检测端口用来检测 mycat 服务的状态,提供给 HAProxy 对 MyCat 的服务状态进行检测判断。
检测 mycat 服务状态以通过xinetd 来实现, 使得HAProxy 可以用 httpchk 来检测 MyCat 的存活状态。
1、安装xinetd:
2、修改配置
检查是否有includedir /etc/xinetd.d,如果没有该配置需要加上:
3、检查 /etc/xinetd.d 目录
检查是否有 /etc/xinetd.d 目录,如果没有该目录需要加上:
4、配置存活状态检测
增加 MyCat 存活状态检测服务配置:
5、配置服务脚本
添加服务脚本/usr/local/bin/mycat_status:
6、添加可执行权限
7、配置启动服务
在 /etc/services 中加入 mycat_status 服务:
保存后重启:
9、开放端口
MyCat 服务主机的防火墙上打开 48700 端口:
设置开机启动:
[:[port]] 指定将客户端连接请求发往此服务器时的目标端口,此为可选项
[param*] 为此 server 设定的一系列参数,均为可选项,参数比较多,下面仅说明几个常用的参数:
weight: 权重,默认为 1,最大值为 256, 0 表示不参与负载均衡
backup: 设定为备用服务器,仅在负载均衡场景中的其他 server 均不可以启用此 server;
check: 启动对此 server 执行监控状态检查,其可以借助于额外的其他参数完成更精细的设定;
inter: 设定监控状态检查的时间间隔,单位为毫秒,默认为 2000,
也可以使用 fastinter 和 downinter 来根据服务器端专题优化此事件延迟
rise: 设置 server 从离线状态转换至正常状态需要检查的次数(不设置的情况下,默认值为 2);
fall: 设置 server 从正常状态转换至离线状态需要检查的次数(不设置的情况下,默认值为 3);
cookie: 为指定 server 设定 cookie 值,此处指定的值将会在请求入站时被检查,第一次为此值挑选的 server 将会被后续的请求所选中,其目的在于实现持久连接的功能;
maxconn: 指定此服务器接受的最大并发连接数,如果发往此服务器的连接数目高于此处指定的值,其将被放置于请求队列,以等待其他连接被释放。
默认情况下 haproxy 是没有日志的,如果有需要则配置系统的 syslog, 也就是 linux 系统中的 rsyslog 服务。
修改配置
增加haproxy日志配置文件
修改配置:
配置生效:
mycat常用后端管理命令
首先通过show @@helap就可以大致的了解Mycat 管理端口的常用命令(dbserver.xml配置)!
mysql>show @@help
+------------------------------------------+--------------------------------------------+
| STATEMENT | DESCRIPTION |
+------------------------------------------+--------------------------------------------+
| show @@time.current | Report current timestamp |
| show @@time.startup | Report startup timestamp |
| show @@version | Report Mycat Server version |
| show @@server | Report server status |
| show @@threadpool | Report threadPool status |
| show @@database | Report databases |
| show @@datanode | Report dataNodes |
| show @@datanode where schema = ? | ReportdataNodes |
| show @@datasource | Report dataSources |
| show @@datasource where dataNode = ? | Report dataSources |
| show @@datasource.synstatus |Report datasource data synchronous |
| show @@datasource.syndetail where name=? | Report datasource data synchronousdetail |
| show @@datasource.cluster | Report datasource galary cluster variables |
| show @@processor | Report processor status |
| show @@command | Report commands status |
| show @@connection | Report connection status |
| show @@cache | Report system cache usage |
| show @@backend | Report backend connection status |
| show @@session | Report front session details |
| show @@connection.sql | Report connection sql |
| show @@sql.execute | Report execute status |
| show @@sql.detail where id = ? | Reportexecute detail status |
| show @@sql | Report SQL list |
| show @@sql.high | Report Hight Frequency SQL |
| show @@sql.slow | Report slow SQL |
| show @@sql.resultset | Report BIG RESULTSET SQL |
| show @@sql.sum | Report User RW Stat |
| show @@sql.sum.user | Report User RW Stat |
| show @@sql.sum.table | Report Table RW Stat |
| show @@parser | Report parser status |
| show @@router | Report router status |
| show @@heartbeat | Report heartbeat status |
| show @@heartbeat.detail where name=? | Report heartbeat currentdetail |
| show @@slow where schema = ? |Report schema slow sql |
| show @@slow where datanode = ? | Reportdatanode slow sql |
| show @@sysparam | Report system param |
| show @@syslog limit=? | Report system mycat.log |
| show @@white | show mycat white host |
| show @@white.set=?,? | set mycat white host,[ip,user] |
| show @@directmemory=1 or 2 |show mycat direct memory usage |
| switch @@datasource name:index | SwitchdataSource |
| kill @@connection id1,id2,... | Killthe specified connections |
| stop @@heartbeat name:time |Pause dataNode heartbeat |
| reload @@config | Reload basic config from file |
| reload @@config_all | Reload all config from file |
| reload @@route | Reload route config from file |
| reload @@user | Reload user config from file |
| reload @@sqlslow= | Set Slow SQL Time(ms) |
| reload @@user_stat | Reset show @@sql @@sql.sum @@sql.slow |
| rollback @@config | Rollback all config from memory |
| rollback @@route | Rollback route config from memory |
| rollback @@user | Rollback user config from memory |
| reload @@sqlstat=open | Open real-time sql stat analyzer |
| reload @@sqlstat=close | Close real-time sql stat analyzer |
| offline | Change MyCat status to OFF |
| online | Change MyCat status to ON |
| clear @@slow where schema = ? |Clear slow sql by schema |
| clear @@slow where datanode = ? | Clearslow sql by datanode |
+------------------------------------------+--------------------------------------------+
58 rows in set (0.00 sec)
1、连接mycat 9066管理端口
命令:mysql -uusername -ppasswd -P9066 -hIP
-u:用户名
-p:密码
-P:端口
-h:ip地址例:linux路径切换到mycat安装路径的bin目录中:输入命令
显示如此则登录成功。
2、显示后端物理库连接信息,包括当前连接数,端口等信息。
命令:Show @@backend
3、显示当前前端客户端连接情况
命令:Show @@connection
4、当前线程池的执行情况,是否有积压(active_count)以及task_queue_size,后者为积压的待处理的SQL,若积压数目一直保值,
则说明后端物理连接可能不够或者SQL执行比较缓慢
命令:show @@threadpool
5、当前后端物理库的心跳检测情况,RS_CODE为1表示心跳正常
命令:show @@heartbeat
6、显示数据节点的访问情况,包括每个数据节点当前活动连接数(active),空闲连接数(idle)以及最大连接数(maxCon) size,EXECUTE参数表示从该节点获取连接的次数,
次数越多,说明访问该节点越多
命令:show @@datanode
6、显示当前processors的处理情况,包括每个processor的IO吞吐量(NET_IN/NET_OUT)、IO队列的积压情况(R_QUEY/W_QUEUE),Socket Buffer Pool的使用情况
BU_PERCENT为已使用的百分比、BU_WARNS为Socket Buffer Pool不够时,临时创建的新的BUFFER的次数,若百分比经常超过90%并且BU_WARNS>0,则表明BUFFER
不够,需要增大,参见性能调优手册。
命令:show @@processor
7、显示缓存的使用情况,对于性能监控和调优很有价值
命令:show @@cache
MAX为缓存的最大值(记录个数),CUR为当前已经在缓存中的数量,ACESS为缓存读次数,HIT为缓存命中次数,PUT 为写缓存次数,LAST_XX为最后 *** 作时间戳,比较重要的几个参数:CUR:若CUR接近MAX,而PUT大于MAX很多,则表明MAX需要增大,HIT/ACCESS为缓存命中率,这个值越高越好。
8、杀掉客户端的连接,参数为连接的ID值,通过show @@connection,可以展示当前连接到MyCAT的所有客户端进程,若某个进程异常,则可以通过该命令杀掉连接,如 KILL @@CONNECTION26907
9、重新加载配置文件schema.xml
如果我们在原有的schema.xml中进行了修改,需要重新加载该文件使其生效。
命令:reload @@config
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)