部署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 集群 监控的更多相关文章

  1. DB监控-Riak集群监控

    公司的Riak版本是2.0.4,目前已根据CMDB三级业务部署了十几套集群,大部分是跨机房部署.监控采集分为两个大的维度,第一个维度是单机,也就是 「IP:端口」:第二个维度是集群,也就是所有节点指标 ...

  2. 京东分布式MySQL集群方案介绍

    背景 数据库作为一个非常基础的系统,任何一家互联网公司都会使用,数据库产品也很多,有Oracle.SQL Server .MySQL.PostgeSQL.MariaDB等,像SQLServer/Ora ...

  3. mysql集群实例

    原文地址:http://www.it165.net/database/html/201403/5678.html http://www.cnblogs.com/seesea125/archive/20 ...

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

    转载:http://www.infoq.com/cn/articles/exploration-of-distributed-mysql-cluster-scheme?utm_campaign=rig ...

  5. [原]项目进阶 之 集群环境搭建(二)MySQL集群

    上次的博文中我们介绍了一下集群的相关概念,今天的博文我们介绍一下MySQL集群的相关内容. 1.MySQL集群简介 MySQL群集技术在分布式系统中为MySQL数据提供了冗余特性,增强了安全性,使得单 ...

  6. Hbase集群监控

    Hbase集群监控 Hbase Jmx监控 监控每个regionServer的总请求数,readRequestsCount,writeRequestCount,region分裂,region合并,St ...

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

    前面大家介绍了主从.主主复制以及他们的中间件mysql-proxy的使用,这一篇给大家介绍的是keepalived的搭建与使用! 一.keepalived简介 1.1.keepalived介绍 Kee ...

  8. 「mysql优化专题」高可用性、负载均衡的mysql集群解决方案(12)

    一.为什么需要mysql集群? 一个庞大的分布式系统的性能瓶颈中,最脆弱的就是连接.连接有两个,一个是客户端与后端的连接,另一个是后端与数据库的连接.简单如图下两个蓝色框框(其实,这张图是我在悟空问答 ...

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

    when?why? 用MySQL集群? 减少数据中心结点压力和大数据量处理(读写分离),采用把MySQL分布,一个或多个application对应一个MySQL数据库.把几个MySQL数据库公用的数据 ...

随机推荐

  1. 配置apache使之支持浏览器端的缓存

    当直接在浏览器中输入一个URL,或者点击一个链接的时候,那么浏览器缓存就会起作用,如果缓存没有过期,那么浏览器会从本地读取资源,不会发起HTTP请求,如果缓存过期,那么浏览器会发起新的浏览器请求. 一 ...

  2. iOS-UINavigationBar【颜色设置】

    UINavigationBar的一些颜色设置,以前老是忘,这次记住了 - (void)setNavigationBar{ ///NavigationBar backgroundcolor[背景色] [ ...

  3. Python之Suds库调用WCF时复杂参数序列化

    今天主要做自动化测技术支持工作,最近一直在做接口自动化这块,前些天在研究将web页面模拟http进行接口自动化,这周杭州那边想测试WCF服务,所以这两天一直在探索.遇到的第一个问题就是服务参数传参序列 ...

  4. java中队列Queue的使用

    1.在java5中新增加了java.util.Queue接口,用以支持队列的常见操作.Queue接口与List.Set同一级别,都是继承了Collection接口.Queue使用时要尽量避免Colle ...

  5. 夏令营提高班上午上机测试 Day 4 解题报告

    我要是没记错的话,今天的题难度算挺适中的. *标程来自高天宇哥哥 T1:小G的字符串 题目描述 有一天,小 L 给小 G 出了这样一道题:生成一个长度为 n 的.全由小写英文字母构成的字符串,只能使用 ...

  6. 【模板小程序】求M~N范围内的质数个数

    /* 本程序说明: [编程题] 求素数 时间限制:2秒 空间限制:32768K 输入M.N,1 < M < N < 1000000,求区间[M,N]内的所有素数的个数.素数定义:除了 ...

  7. MySQL 存储过程的简单使用

    首先创建一张 students 表 SQL脚本如下: create table students( id int primary key auto_increment, age int, name v ...

  8. Linux知识体系之磁盘与档案系统管理

    硬盘的物理组成:由许许多多的圆形硬盘盘所组成.宜居硬盘盘能够容纳的数据量,而有所谓的单碟或者多碟. 首先,硬盘里一定会有所谓的磁头(Head)在进行该硬盘上面的读写动作,而磁头是固定在机械手臂上的,机 ...

  9. xBIM WeXplorer xViewer 浏览器检查

    目录 基础 xBIM WeXplorer 简要介绍 xBIM WeXplorer xViewer 基本应用 xBIM WeXplorer xViewer 浏览器检查 xBIM WeXplorer xV ...

  10. ie 浏览器文本输入框和密码输入框的默认样式

    登录页在ie浏览器上的默认样式 输入框后面的X    密码框后面的眼睛 如下图 解决方案 /*ie文本框背景色*/ input::-ms-clear { display: none; } /*ie文本 ...