mysql 集群 监控
部署mysql高可用集群(mysql-mmm+主从同步)
4台数据库服务器:
四个数据库之保留初始的四个库,其他库全部删除
主机158
主机137
主机99
主机67
主机102(可与其他四台ping通即可)
5台主机的公共配置:
下载mysql-mmm.zip
配置yum源
service iptables stop
setenforce 0
yum -y install perl perl-*
主机158与主机137配置为主主结构:
主机158:
mysql> grant replication slave on *.* to hydra@"%" identified by "Anonymous";
[root@158 ~]# vim /etc/my.cnf
[mysqld]
log-bin=master158
server_id=158
[root@158 ~]# /etc/init.d/mysql restart
mysql> show master status\G;(在192.168.4.137上查看节点)
mysql> change master to master_host="192.168.4.137",master_user="hydra",master_password="Anonymous",master_log_file="master137.000001",master_log_pos=120;
mysql> start slave;
主机137:
mysql> grant replication slave on *.* to hydra@"%" identified by "Anonymous";
[root@137 ~]# vim /etc/my.cnf
[mysqld]
log-bin=master137
server_id=137
log-slave-updates
[root@137 ~]# /etc/init.d/mysql restart
mysql> show master status\G;(在192.168.4.158上查看节点)
mysql> change master to master_host="192.168.4.158",master_user="hydra",master_password="Anonymous",master_log_file="master158.000001",master_log_pos=120;
mysql> start slave;
主机99和主机67同时配置为主机137的从数据库,并能够让主机99和主机67能同步主机158上的数据:
主机99:
[root@99 ~]# vim /etc/my.cnf
[mysqld]
server-id=99
[root@99 ~]# /etc/init.d/mysql restart
mysql> show master status\G;(在192.168.4.137上查看节点)
mysql> change master to master_host="192.168.4.137",master_user="hydra",master_password="Anonymous",master_log_file="master137.000001",master_log_pos=120;
mysql> start slave;
主机67:
[root@67 ~]# vim /etc/my.cnf
[mysqld]
server_id=67
[root@67 ~]# /etc/init.d/mysql restart
mysql> show master status\G;(在192.168.4.137上查看节点)
mysql> change master to master_host="192.168.4.137",master_user="hydra",master_password="Anonymous",master_log_file="master137.000001",master_log_pos=120;
mysql> start slave;
测试主从同步配置:
使用158的数据库做用户授权,在其他三台数据库服务器能够查看到授权用户
mysql> grant all on bbs.* to stu@"%" identified by "123";
mysql> select user,host from mysql.user;(在其他三台数据库服务器测试)
+-------+-----------+
| user | host |
+-------+-----------+
| hydra | % |
| stu | % |
| root | 127.0.0.1 |
| root | 137 |
| root | ::1 |
| root | localhost |
+-------+-----------+
在客户端测试授权用户:
[root@102 ~]# mysql -h192.168.4.158 -ustu -p123(测试可以连接)
mysql> create database bbs;
mysql> create table bbs.t1(id int);
mysql> insert into bbs.t1 values(911);
在其他数据库服务器查看:
mysql> select * from bbs.t1;
+------+
| id |
+------+
| 911 |
+------+
配置mysql-mmm
mysql主主复制管理器,监控,故障转移和管理的一套脚本套件
用perl语言编写,能对居于标准的主从配置的任意数量的从服务器进行读负载均衡
和实现数据备份,mysql本身没有提供故障转移的方案,从而实现数据库服务器的高可用
mysql-mmm架构
mmm-monitor:管理节点,运行在监控服务器上,负责所有的监控工作的监控
mmm-agent:数据库节点,运行在数据库服务器上,提供简单的远程服务集,提供给监控节点
在所有的服务器上安装mysql-mmm
[root@158 ~]# unzip mysql-mmm.zip
[root@158 mysql-mmm]# ls
Algorithm-Diff-1.1902.tar.gz mysql-mmm-P.txt
install.sh Net-ARP-1.0.8.tgz
mysql-mmm-2.2.1.tar.gz perl-Log-Log4perl-1.26-1.el6.rf.noarch.rpm
mysql-mmm-L.docx Proc-Daemon-0.03.tar.gz
[root@158 mysql-mmm]# tar -xf mysql-mmm-2.2.1.tar.gz
[root@158 mysql-mmm-2.2.1]# ls
bin COPYING etc INSTALL lib Makefile README sbin UPGRADE VERSION
[root@158 mysql-mmm-2.2.1]# make install(安装)
[root@158 ~]# ls /etc/mysql-mmm/*.conf(配置文件)
/etc/mysql-mmm/mmm_agent.conf /etc/mysql-mmm/mmm_mon.conf
/etc/mysql-mmm/mmm_common.conf /etc/mysql-mmm/mmm_tools.conf
配置文件说明:
mmm_agent.conf(是mmm_agent服务的主配置文件)
mmm_mon.conf(是mmm_monitor的主配置文件)
mmm_common.conf(公共配置文件,所有的服务器上都要)
配置mysql-mmm的ip规划:
写ip地址 192.168.4.119 (在主机158和主机137之间浮动)
读ip地址 192.168.4.200 (在主机99和主机67之间浮动)
192.168.4.201
修改mmm_common.conf配置文件之前,在所有数据库服务器上做如下授权:
mysql> grant replication client,process,super on *.* to agent@"%" identified by "Anonymous";
更改mmm_common.conf配置文件:
[root@158 mysql-mmm]# sed -i '/^$/d' mmm_common.conf(删除空行)
[root@158 mysql-mmm]# vim mmm_common.conf
<host default>(本机配置)
cluster_interface eth0(本机网卡)
pid_path /var/run/mmm_agentd.pid(进程pid号存放处)
bin_path /usr/lib/mysql-mmm/(可执行命令安装路径)
replication_user hydra(拷贝数据权限的用户名)
replication_password Anonymous(被授权用户密码)
agent_user agent(有agent权限的用户名)
agent_password Anonymous(密码)
</host>
<host master158>(主机名)
ip 192.168.4.158(主机的ip地址)
mode master(主机的类型)
peer master137(同类型)
</host>
<host master137>(主机名)
ip 192.168.4.137(主机的ip地址)
mode master(主机的类型)
peer master158(同类型)
</host>
<host slave99>(从主机名)
ip 192.168.4.99(主机的ip地址)
mode slave(主机的类型)
</host>
<host slave67>(从主机名)
ip 192.168.4.67(主机的ip地址)
mode slave(主机的类型)
</host>
<role writer>(写类型)
hosts master158,master137(写类型的主机名)
ips 192.168.4.119(浮动ip)
mode exclusive(独占模式)
</role>
<role reader>(读类型)
hosts slave99,slave67(读类型的主机名)
ips 192.168.4.200,192.168.4.201(浮动ip)
mode balanced(共享模式)
</role>
[root@158 mysql-mmm]# scp mmm_common.conf root@192.168.4.137:/etc/mysql-mmm/(保存后把此配置文件发送到所有的服务器上)
更改mmm_agent.conf配置文件
修改mmm_agent.con文件
[root@158 mysql-mmm]# vim mmm_agent.conf
include mmm_common.conf(先加载此配置文件)
this master158(本机在mmm_common.conf文件里的主机名)
修改mmm_agent.con文件
[root@137 mysql-mmm]# vim mmm_agent.conf
include mmm_common.conf
this master137(本机在mmm_common.conf文件里的主机名)
修改mmm_agent.con文件
[root@99 mysql-mmm]# vim mmm_agent.conf
include mmm_common.conf
this slave99(本机在mmm_common.conf文件里的主机名)
修改mmm_agent.con文件
[root@67 mysql-mmm]# vim mmm_agent.conf
include mmm_common.conf
this slave67(本机在mmm_common.conf文件里的主机名)
修改mmm_mon.conf配置文件之前,在所有数据库服务器上做如下授权:
mysql> grant replication client on *.* to monitor@"%" identified by "Anonymous";
更改mmm_mon.conf配置文件:(在监控端修改即可,被监控端不用改)
[root@102 mysql-mmm]# vim mmm_mon.conf
include mmm_common.conf
<monitor>
ip 192.168.4.102(监控端ip)
pid_path /var/run/mmm_mond.pid(pid存放处)
bin_path /usr/lib/mysql-mmm/
status_path /var/lib/misc/mmm_mond.status
ping_ips 192.168.4.158, 192.168.4.137, 192.168.4.99, 192.168.4.67(被监控的服务器ip地址)
</monitor>
<host default>
monitor_user monitor(授权用户)
monitor_password Anonymous(密码)
</host>
debug 0(1开启,输出启动过程信息)
启动数据库服务器上的mmm_agent服务:
启动服务:/etc/init.d/mysql-mmm-agent start
日志文件:/var/log/mysql-mmm/mmm_agentd.log
端口:netstat -utnalp | grep :9989
安装服务运行需要的软件包
Algorithm-Diff-1.1902.tar.gz
Proc-Daemon-0.03.tar.gz
perl-Log-Log4perl-1.26-1.el6.rf.noarch.rpm
把安装步骤写成脚本
进入在每台数据库服务器上包所在的目录上执行
进入每台数据库服务器执行脚本
[root@158 ~]# vim xx.sh
#/bin/bash
tar -xf Proc-Daemon-0.03.tar.gz
cd Proc-Daemon-0.03
perl Makefile.PL
make
make install
cd..
rpm -ivh perl-Log-Log4perl-1.26-1.el6.rf.noarch.rpm
tar -xf Algorithm-Diff-1.1902.tar.gz
cd Algorithm-Diff-1.1902
perl Makefile.PL
make
make install
cd ..
[root@158 ~]# chmod +x xx.sh
[root@158 ~]# scp xx.sh 192.168.4.137:/root/(把脚本上传到其他服务器上)
启动mmm_monitor服务
依赖包和mmm_agent的一样,执行脚本即可
启动服务:/etc/init.d/mysql-mmm-monitor start
日志文件:/var/log/mysql-mmm/mmm_monitor.log
端口:netstat -utnalp | grep :9988
在所有数据库服务器上安装获取虚拟ip的程序
Net-ARP-1.0.8.tgz
[root@158 ~]# vim xxx.sh
#/bin/bash
gunzip Net-ARP-1.0.8.tgz
tar -xf Net-ARP-1.0.8.tar
cd Net-ARP-1.0.8
perl Makefile.PL
make
make install
[root@158 Net-ARP-1.0.8]# chmod +x xxx.sh (把执行脚本上传到所有数据库服务器上)
测试配置
在102上查看配置
mmm_control help(帮助)
mmm_control show(查看状态)
mmm_control set_online 主机名(在线状态)
[root@102 ~]# mmm_control set_online master158(设置主机158在线模式)
[root@102 ~]# mmm_control show
master137(192.168.4.137) master/ONLINE. Roles:
master158(192.168.4.158) master/ONLINE. Roles: writer(192.168.4.119)
slave67(192.168.4.67) slave/ONLINE. Roles: reader(192.168.4.200)
slave99(192.168.4.99) slave/ONLINE. Roles: reader(192.168.4.201)
客户端测试虚拟ip访问:
[root@102 ~]# ping192.168.4.119
[root@102 ~]# mysql -h192.168.4.119 -uhydra -pAnonymous
mysql 集群 监控的更多相关文章
- DB监控-Riak集群监控
公司的Riak版本是2.0.4,目前已根据CMDB三级业务部署了十几套集群,大部分是跨机房部署.监控采集分为两个大的维度,第一个维度是单机,也就是 「IP:端口」:第二个维度是集群,也就是所有节点指标 ...
- 京东分布式MySQL集群方案介绍
背景 数据库作为一个非常基础的系统,任何一家互联网公司都会使用,数据库产品也很多,有Oracle.SQL Server .MySQL.PostgeSQL.MariaDB等,像SQLServer/Ora ...
- mysql集群实例
原文地址:http://www.it165.net/database/html/201403/5678.html http://www.cnblogs.com/seesea125/archive/20 ...
- 分布式MySQL集群方案的探索与思考
转载:http://www.infoq.com/cn/articles/exploration-of-distributed-mysql-cluster-scheme?utm_campaign=rig ...
- [原]项目进阶 之 集群环境搭建(二)MySQL集群
上次的博文中我们介绍了一下集群的相关概念,今天的博文我们介绍一下MySQL集群的相关内容. 1.MySQL集群简介 MySQL群集技术在分布式系统中为MySQL数据提供了冗余特性,增强了安全性,使得单 ...
- Hbase集群监控
Hbase集群监控 Hbase Jmx监控 监控每个regionServer的总请求数,readRequestsCount,writeRequestCount,region分裂,region合并,St ...
- MySQL集群(四)之keepalived实现mysql双主高可用
前面大家介绍了主从.主主复制以及他们的中间件mysql-proxy的使用,这一篇给大家介绍的是keepalived的搭建与使用! 一.keepalived简介 1.1.keepalived介绍 Kee ...
- 「mysql优化专题」高可用性、负载均衡的mysql集群解决方案(12)
一.为什么需要mysql集群? 一个庞大的分布式系统的性能瓶颈中,最脆弱的就是连接.连接有两个,一个是客户端与后端的连接,另一个是后端与数据库的连接.简单如图下两个蓝色框框(其实,这张图是我在悟空问答 ...
- 集群技术(二) MySQL集群简介与配置详解
when?why? 用MySQL集群? 减少数据中心结点压力和大数据量处理(读写分离),采用把MySQL分布,一个或多个application对应一个MySQL数据库.把几个MySQL数据库公用的数据 ...
随机推荐
- iOS导出ipa包时四个选项的意义
1. Save for iOS App Store Deployment 保存到本地 准备上传App Store 或者在越狱的iOS设备上使用 2. Save for Ad Hoc Deploymen ...
- word文字覆盖问题
我们在编写word文档时,偶尔会遇到这个问题: 在一个段落中的某个位置修改文字时,直接就把后面的字体给覆盖了,导致后面的句子也不完整了. 解决经过: 之前遇到这种情况,非常恼火,直接新建一个word文 ...
- 用swing做一个简单的正则验证工具
直接上代码吧,因为我对swing也不熟悉,照着API一点点拼出来的. import java.awt.event.ActionEvent; import java.awt.event.ActionLi ...
- 安装supervisor
机器版本 centos 6.5 python 版本 2.6.6 在终端输入 easy_install supervisor 并回车,linux会自动联网并下载supervisor源码解压并安装 安装成 ...
- 深入理解JAVA虚拟机之JVM性能篇---基础知识点(运行时数据区域)
一. 运行数据区域划分 各个数据区域功能如下: 1. 程序计数器: 较小的一块内存空间,可以看做是当前线程所执行的字节码的行号指示器,每条线程都有一个独立的程序计数器,各条线程之间计数器互不影响,独立 ...
- 将常用的Android adb shell 命令行封装为C#静态函数
更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 简介:adb命令是常用的Android命令行,自动化.代码调试.手工排查问题都会用的到,这里将常用的一些命令行封装 ...
- iOS-沙盒目录
///沙盒路径 + (NSString *)pathDocument{ NSFileManager *fileManager = [[NSFileManager alloc]init]; NSStri ...
- [Sdoi2017]硬币游戏 [高斯消元 KMP]
[Sdoi2017]硬币游戏 题意:硬币序列,H T等概率出现,\(n \le 300\)个人猜了一个长为$ m \le 300$的字符串,出现即获胜游戏结束.求每个人获胜概率 考场用了[1444: ...
- BZOJ 1176: [Balkan2007]Mokia [CDQ分治]
题意: 有一个n * n的棋盘,每个格子内有一个数,初始的时候全部为0.现在要求维护两种操作: 1)Add:将格子(x, y)内的数加上A. 2)Query:询问矩阵(x0, y0, x1, y1)内 ...
- POJ2891 Strange Way to Express Integers [中国剩余定理]
不互质情况的模板题 注意多组数据不要一发现不合法就退出 #include <iostream> #include <cstdio> #include <cstring&g ...