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 [email protected]"%" identified by "Anonymous";
[[email protected] ~]# vim /etc/my.cnf
[mysqld]
log-bin=master158
server_id=158
[[email protected] ~]# /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 [email protected]"%" identified by "Anonymous";
[[email protected] ~]# vim /etc/my.cnf
[mysqld]
log-bin=master137
server_id=137
log-slave-updates
[[email protected] ~]# /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:
[[email protected] ~]# vim /etc/my.cnf
[mysqld]
server-id=99
[[email protected] ~]# /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:
[[email protected] ~]# vim /etc/my.cnf
[mysqld]
server_id=67
[[email protected] ~]# /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 [email protected]"%" 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 |
+-------+-----------+
在客户端测试授权用户:
[[email protected] ~]# 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
[[email protected] ~]# unzip mysql-mmm.zip
[[email protected] 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
[[email protected] mysql-mmm]# tar -xf mysql-mmm-2.2.1.tar.gz
[[email protected] mysql-mmm-2.2.1]# ls
bin COPYING etc INSTALL lib Makefile README sbin UPGRADE VERSION
[[email protected] mysql-mmm-2.2.1]# make install(安装)
[[email protected] ~]# 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 [email protected]"%" identified by "Anonymous";

更改mmm_common.conf配置文件:
[[email protected] mysql-mmm]# sed -i ‘/^$/d‘ mmm_common.conf(删除空行)
[[email protected] 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>
[[email protected] mysql-mmm]# scp mmm_common.conf [email protected]:/etc/mysql-mmm/(保存后把此配置文件发送到所有的服务器上)

更改mmm_agent.conf配置文件
修改mmm_agent.con文件
[[email protected] mysql-mmm]# vim mmm_agent.conf
include mmm_common.conf(先加载此配置文件)
this master158(本机在mmm_common.conf文件里的主机名)
修改mmm_agent.con文件
[[email protected] mysql-mmm]# vim mmm_agent.conf
include mmm_common.conf
this master137(本机在mmm_common.conf文件里的主机名)
修改mmm_agent.con文件
[[email protected] mysql-mmm]# vim mmm_agent.conf
include mmm_common.conf
this slave99(本机在mmm_common.conf文件里的主机名)
修改mmm_agent.con文件
[[email protected] mysql-mmm]# vim mmm_agent.conf
include mmm_common.conf
this slave67(本机在mmm_common.conf文件里的主机名)

修改mmm_mon.conf配置文件之前,在所有数据库服务器上做如下授权:
mysql> grant replication client on *.* to [email protected]"%" identified by "Anonymous";
更改mmm_mon.conf配置文件:(在监控端修改即可,被监控端不用改)
[[email protected] 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
把安装步骤写成脚本
进入在每台数据库服务器上包所在的目录上执行
进入每台数据库服务器执行脚本
[[email protected] ~]# 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 ..
[[email protected] ~]# chmod +x xx.sh
[[email protected] ~]# 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

[[email protected] ~]# 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
[[email protected] Net-ARP-1.0.8]# chmod +x xxx.sh (把执行脚本上传到所有数据库服务器上)

测试配置
在102上查看配置
mmm_control help(帮助)
mmm_control show(查看状态)
mmm_control set_online 主机名(在线状态)
[[email protected] ~]# mmm_control set_online master158(设置主机158在线模式)
[[email protected] ~]# 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访问:
[[email protected] ~]# ping192.168.4.119
[[email protected] ~]# mysql -h192.168.4.119 -uhydra -pAnonymous

时间: 2024-10-19 23:55:44

mysql 集群 监控的相关文章

mysql主主复制+keepalived 打造高可用mysql集群

为了响应公司需求,打造出更安全的mysql集群,能够实现mysql故障后切换,研究了几天终于有了成果,一起分享一下. 首先介绍一下这套集群方案实现的功能 1.mysql服务器故障后自动转移,修好后自动切回 2.mysql服务故障自动转移,修好后自动切回 3.可以实现在几秒钟内转移 以下内容均是实验环境,请根据实际情况修改响应参数 实验环境: mysql1 ip:10.1.1.20 mysql2  ip:10.1.1.21 mysql vip:10.1.1.25 三台机器均安装centos 6.5

103-MHA 高可用mysql集群

一.MHA简介 1.1.简介 MHA(Master HA ) 是一款开源的 MySQL高可用程序,它为MYSQL 主从复制架构提供了automating master failover 主节点自动迁移功能.MHA在监控到master节点故障时候,会自动提升拥有的数据最近进于主节点的其他从节点为主节点, 并且在此期间,会通过其他节点获取额外的信息来避免数据不一致性的问题.MHA也提供master节点的在线切换功能, 即按需切换master/slave节点. 1.2.MHA服务角色 MHA Mana

构建MySQL集群

MySQL集群作用:解决MySQL代理服务器的缺点单点故障和数据备份 结构图如下: 使用6台RHEL6.4虚拟机,如图所示sqlA和sqlB作为SQL节点,ndbA和ndbB作为数据节点,mgmd作为管理节点,这5个节点构成MySQLCluster体系:而另一台虚拟机192.168.4.120作为MySQL测试客户机. 角色说明: 客户端(client)    :访问集群主机 管理集群的主机(mgmd):管理集群中所有主机,加载自己的主配置文件,设置集群中所有主机的角色 SQL结点(sql)  

集群技术(二) MySQL集群简介与配置详解

when?why? 用MySQL集群? 减少数据中心结点压力和大数据量处理(读写分离),采用把MySQL分布,一个或多个application对应一个MySQL数据库.把几个MySQL数据库公用的数据做出共享数据,例如购物车,用户对象等等,存在数据结点里面.其他不共享的数据还维持在各自分布的MySQL数据库本身中.  集群MySQL中名称概念   MySQL群集需要有一组计算机,每台计算机的角色可能是不一样的.MySQL群集中有三种节点:管理节点.数据节点和SQL节点.群集中的某计算机可能是某一

Haproxy+mysql cluster( MySQL 集群) 配置

一.准备 1.准备服务器 建立有2个节点的MySQL CLuster体系,使用6台服务器建立Haproxy+mysql cluster( MySQL 集群) 体系 节点配置说明 节点 对应的IP和端口 Haproxy负载均衡(1个) centos 6.3 1.1.1.11  管理节点(1个) centos 6.3  1.1.1.30  SQL节点 (2个) centos 6.3  1.1.1.21  1.1.1.22  数据节点 (2个) centos 6.3  1.1.1.31  1.1.1.

MySQL集群(四)之keepalived实现mysql双主高可用

前面大家介绍了主从.主主复制以及他们的中间件mysql-proxy的使用,这一篇给大家介绍的是keepalived的搭建与使用! 一.keepalived简介 1.1.keepalived介绍 Keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节点的状态,它根据TCP/IP参考模型的第三.第四层.第五层交换机制检测每个服务节点的状态,如果某个服务器节点出现异常, 或者工作出现故障,Keepalived将检测到,并将出现的故障的服务器节点从集群系统中剔除,这些工作全部是自动完

34补1-4 实现高可用mysql集群

HA Cluster基础及heartbeat实现HA 配置环境 node1:192.168.1.121 CentOS6.7 node2:192.168.1.122 CentOS6.7 node3:192.168.1.123 CentOS6.7 vip 192.168.1.88 配置前准备    # cat /etc/hosts 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1  

【MySQL大系】《Mysql集群架构》

原文地址(微信):[技术文章]<Mysql集群架构> 本文地址:http://www.cnblogs.com/aiweixiao/p/7258444.html 点击关注微信公众号 1.主要内容 1)mysql的架构,锁,最佳实践,事务 2)mysql的命令行,主从复制,索引,数据备份/恢复 3)mysql的集群,mysql的负载均衡,监控,mysql proxy 4)  mysql的MMM架构,mysql 的源码,DBA MySQL-从删除到跑路 2.具体内容 2.1)[架构]: [架构图]:

分布式MySQL集群方案的探索与思考

转载:http://www.infoq.com/cn/articles/exploration-of-distributed-mysql-cluster-scheme?utm_campaign=rightbar_v2&utm_source=infoq&utm_medium=articles_link&utm_content=link_text 背景 数据库作为一个非常基础的系统,任何一家互联网公司都会使用,数据库产品也很多,有Oracle.SQL Server .MySQL.Pos