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数据库公用的数据 ...
随机推荐
- JMX与Spring
1.什么是JMX JMX可以监控类的运行情况,可以在程序运行期查看并修改类属性的信息. 举一个应用实例:在一个系统中常常会有一些配置信息,比如服务的IP地址,端口号什么的,那么如何来写这些代码呢? 下 ...
- 在ASP.NET MVC中使用Web API和EntityFramework构建应用程序
最近做了一个项目技术预研:在ASP.NET MVC框架中使用Web API和EntityFramework,构建一个基础的架构,并在此基础上实现基本的CRUD应用. 以下是详细的步骤. 第一步 在数据 ...
- SDN第二次作业
作业链接 阅读文章<软件定义网络(SDN)研究进展>,并根据所阅读的文章,书写一篇博客,回答以下问题(至少3个): 为什么需要SDN?SDN特点? 随着网络规模的不断扩大,封闭的网络设备内 ...
- [实例]JAVA调用微信接口发送图文消息,不用跳到详情页
package com.test; import java.io.IOException; import java.io.InputStream; import java.io.OutputStrea ...
- 多路复用select
多路复用I/O:一个执行体监视多个文件描述符对象的状态是否改变,一旦改变通知其他执行体来实现. 基本思想: 1. 先构造一张有关描述符的表,然后调用一个函数,当这些文件描述符中的一个或者多个已准备好进 ...
- ADO.NET 对数据操作
public static class SQLHelper { static string connString = ConfigurationManager.ConnectionStrings[&q ...
- Mysql大数据备份和增量备份及还原
目前主流的有两个工具可以实现物理热备:ibbackup和xtrabackup ;ibbackup是需要授权价格昂贵,而xtrabackup功能比ibbackup强大而且是开源的 Xtrabackup提 ...
- Kudu存储实战笔记
有人会问,为啥要用这个叫啥Kudu的,Kudu是啥? 就像官网所说,Kudu是一个针对Apache hadoop 平台而开发的列式存储管理器,在本菜鸟看来,它是一种介于hdfs与hbase的一种存储. ...
- php读取access数据库
<?php //读取mdb数据库 $conn = new com("ADODB.Connection"); $connstr = "DRIVER={Microsof ...
- 图论算法-Tarjan模板 【缩点;割顶;双连通分量】
图论算法-Tarjan模板 [缩点:割顶:双连通分量] 为小伙伴们总结的Tarjan三大算法 Tarjan缩点(求强连通分量) int n; int low[100010],dfn[100010]; ...