MySQL-MMM架构部署

MySQL-MMM架构部署

2.1 问题

本案例要求熟悉实现MySQL-MMM的架构部署主要包括以下任务

  1. 安装依赖包
  2. 安装软件包
  3. 配置MySQL-MMM

2.2 方案

使用5台RHEL 6虚拟机如图-2所示。其中192.168.4.10、192.168.4.11作为MySQL双主服务器192.168.4.12、192.168.4.13作为主服务器的从服务器192.168.4.100作为MySQL-MMM架构中管理监控服务器实现监控MySQL主从服务器的工作状态及决定故障节点的移除或恢复工作架构搭建完成后使用客户机192.168.4.120进行访问客户机需要安装MySQL-client软件包。

图-2

2.3 步骤

实现此案例需要按照如下步骤进行。

步骤一安装MySQL-MMM

1安装依赖关系MySQL集群内5台服务器master1master2slave1slave2monitor均需安装

  1. [[email protected] ~]# yum -y install gcc* perl-Date-Manip  perl-Date-Manip  perl-Date-Manip perl-XML-DOM-XPath perl-XML-Parser perl-XML-RegExp rrdtool perl-Class-Singleton perl perl-DBD-MySQL perl-Params-Validate perl-MailTools perl-Time-HiRes

2安装MySQL-MMM软件依赖包MySQL集群内5台服务器master1master2slave1slave2monitor均需安装软件包讲师提供

安装安装Log-Log4perl 类

  1. [[email protected]-master1 ~]# rpm -ivh perl-Log-Log4perl-1.26-1.el6.rf.noarch.rpm

安装Algorithm-Diff类

  1. [[email protected]-master1 ~]# tar -zxvf Algorithm-Diff-1.1902.tar.gz  //解压安装包
  2. .. ..
  3. [[email protected]-master1 ~]# cd Algorithm-Diff-1.1902                //切换到安装目录
  4. [[email protected]-master1 Algorithm-Diff-1.1902]# perl  Makefile.PL    //生成makefile文件
  1. [[email protected]-master1 Algorithm-Diff-1.1902]# make && make install        //编译编译安装
  2. .. ..
  3. [[email protected]-master1 Algorithm-Diff-1.1902]# cd                //切换到软件包目录

安装Proc-Daemon类

  1. [[email protected]-master1 ~]# tar -zxvf Proc-Daemon-0.03.tar.gz    //解压安装包
  2. .. ..
  3. [[email protected]-master1 ~]# cd Proc-Daemon-0.03                    //切换到安装目录
  4. [[email protected]-master1 Proc-Daemon-0.03]# perl    Makefile.PL    //生成makefile文件
  5. Checking if your kit is complete...
  6. Looks good
  7. Writing Makefile for Proc::Daemon
  8. [[email protected]-master1 Proc-Daemon-0.03]# make && make install    //编译编译安装
  9. .. ..
  10. [[email protected]-master1 Proc-Daemon-0.03]# cd                    //切换到软件包目录

安装Net-ARP虚拟IP分配工具

  1. [[email protected]-master1 ~]# gunzip Net-ARP-1.0.8.tgz    //使用gunzip解压tgz格式的安装包
  2. [[email protected]-master1 ~]# tar xvf Net-ARP-1.0.8.tar            //解压tar安装包
  3. .. ..
  4. [[email protected]-master1 ~]# cd Net-ARP-1.0.8                    //切换到安装目录
  5. [[email protected]-master1 Net-ARP-1.0.8]# perl Makefile.PL        //生成makefile文件
  1. [[email protected]-master1 Net-ARP-1.0.8]# make && make install    //编译编译安装
  2. .. ..
  3. [[email protected]-master1 Net-ARP-1.0.8]# cd                        //切换到软件包目录

安装Mysql-MMM软件包

  1. [[email protected]-master1 ~]# tar xvf mysql-mmm-2.2.1.tar.gz        //解压安装包
  2. .. ..
  3. [[email protected]-master1 ~]# cd mysql-mmm-2.2.1                    //切换到安装目录
  4. [[email protected]-master1 mysql-mmm-2.2.1]# make && make install    //编译编译安装

步骤二修改配置文件

1修改公共配置文件

本案例中MySQL集群的5台服务器master1、master2、slave1、slave2、monitor都需要配置可以先配好一台后使用scp复制。

  1. [[email protected] ~]# vim  /etc/mysql-mmm/mmm_common.conf
  2. active_master_role    writer
  3. <host default>
  4. cluster_interface        eth0                //设置主从同步的用户
  5. pid_path                /var/run/mmm_agentd.pid
  6. bin_path                /usr/lib/mysql-mmm/
  7. replication_user        slaveuser            //设置主从同步的用户
  8. replication_password    pwd123            //设置主从同步用户密码
  9. agent_user            agent                //mmm-agent控制数据库用户
  10. agent_password        agent                //mmm-agent控制数据库用户密码
  11. </host>
  12. <host master1>                            //设置第一个主服务器
  13. ip                    192.168.4.10            //master1 IP 地址
  14. mode                    master
  15. peer                    master2                //指定另外一台主服务器
  16. </host>
  17. <host master2>                            //指定另外一台主服务器
  18. ip                    192.168.4.11
  19. mode                    master
  20. peer                    master1
  21. </host>
  22. <host slave1>                                //设置第一台从服务器
  23. ip                    192.168.4.12            //slave1 IP 地址
  24. mode                    slave                //本段落配置的是slave服务器
  25. </host>
  26. <host slave2>
  27. ip                    192.168.4.13
  28. mode                    slave
  29. </host>
  30. <role writer>                                //设置写入服务器工作模式
  31. hosts                master1,master2        //提供写的主服务器
  32. ips                    192.168.4.200        //设置VIP地址
  33. mode                    exclusive            //排他模式
  34. </role>
  35. <role reader>                                //设置读取服务器工作模式
  36. hosts                slave1,slave2        //提供读的服务器信息
  37. ips                    192.168.4.201,192.168.4.202    //多个虚拟IP
  38. mode                    balanced                        //均衡模式
  39. </role>

2修改管理主机配置文件monitor主机配置

  1. [[email protected] ~]# vim /etc/mysql-mmm/mmm_mon.conf
  2. include mmm_common.conf
  3. <monitor>
  4. ip                        192.168.4.100        //设置管理主机IP地址
  5. pid_path                /var/run/mmm_mond.pid
  6. bin_path                /usr/lib/mysql-mmm/
  7. status_path                /var/lib/misc/mmm_mond.status
  8. ping_ips                192.168.4.10,192.168.4.11,192.168.4.12,192.168.4.13
  9. //设置被监控数据库
  10. </monitor>
  11. <host default>
  12. monitor_user            monitor                    //监控数据库MySQL用户    monitor_password        monitor                    //监控数据库MySQL用户密码
  13. </host>
  14. debug 0

3修改客户端配置文件

master1配置

  1. [[email protected] ~]# cat /etc/mysql-mmm/mmm_agent.conf
  2. include mmm_common.conf
  3. this master1

master2配置

  1. [[email protected] ~]# cat /etc/mysql-mmm/mmm_agent.conf
  2. include mmm_common.conf
  3. this master2

slave1配置

  1. [[email protected] ~]# cat /etc/mysql-mmm/mmm_agent.conf
  2. include mmm_common.conf
  3. this slave1

slave2配置

  1. [[email protected] ~]# cat /etc/mysql-mmm/mmm_agent.conf

3 MySQL-MMM架构使用

3.1 问题

本案例要求基于普通版的MySQL服务器改造MMM架构完成以下任务操作

  • 启动MMM集群架构
  • 设置集群中服务器为online状态

3.2 方案

MySQL-MMM架构部署完成后需要启动数据库端启动mmm-agent进程管理端启动mmm-monitor进程启动完成后设置所有数据库主机状态为online。

3.3 步骤

实现此案例需要按照如下步骤进行。

步骤一启动MMM集群架构

1启动mmm-agent进程

master1操作

  1. [[email protected] ~]# /etc/init.d/mysql-mmm-agent start

master2操作

  1. [[email protected] ~]# /etc/init.d/mysql-mmm-agent start

slave1操作

  1. [[email protected] ~]# /etc/init.d/mysql-mmm-agent start

slave2操作

  1. [[email protected] ~]# /etc/init.d/mysql-mmm-agent start

2启动mmm-monitor进程

monitor主机操作

  1. [[email protected] ~]# /etc/init.d/mysql-mmm-monitor start

步骤二设置集群中服务器为online状态

控制命令只能在管理端monitor服务器上执行。

查看当前集群中各服务器状态

  1. [[email protected] ~]# mmm_control show

设置4台数据库主机状态为online

  1. [[email protected] ~]# mmm_control set_online master1
  2. OK: State of ‘master1‘ changed to ONLINE. Now you can wait some time and check its new roles!
  3. [[email protected] ~]# mmm_control set_online master2
  4. OK: State of ‘master2‘ changed to ONLINE. Now you can wait some time and check its new roles!
  5. [[email protected] ~]# mmm_control set_online slave1
  6. OK: State of ‘slave1‘ changed to ONLINE. Now you can wait some time and check its new roles!
  7. [[email protected] ~]# mmm_control set_online slave2

再次查看当前集群中各服务器状态

  1. [[email protected] ~]# mmm_control show
  2. master1(192.168.4.10) master/ONLINE. Roles: writer(192.168.4.200)
  3. master2(192.168.4.11) master/ONLINE. Roles:
  4. slave1(192.168.4.12) slave/ONLINE. Roles: reader(192.168.4.201)
  5. slave2(192.168.4.13) slave/ONLINE. Roles: reader(192.168.4.202)

步骤三测试MySQL-MMM架构

1客户机安装MySQL-client软件包

  1. [[email protected] ~]# tar xvf MySQL-5.6.15-1.el6.x86_64.rpm-bundle.tar
  2. .. ..
  3. [[email protected] ~]# rpm -ivh MySQL-client-5.6.15-1.el6.x86_64.rpm

2)MySQL-MMM虚拟IP访问测试

  1. [[email protected] ~]# mysql -h192.168.4.200 -uroot -ppwd123 -e "show databases"
  2. Warning: Using a password on the command line interface can be insecure.
  3. +--------------------+
  4. | Database           |
  5. +--------------------+
  6. | information_schema |
  7. | mysql              |
  8. | performance_schema |
  9. | tarena             |
  10. | test               |
  11. +--------------------+
  12. [[email protected] ~]#
  13. [[email protected] ~]# mysql -h192.168.4.200 -uroot -ppwd123 -e "show databases"
  14. Warning: Using a password on the command line interface can be insecure.
  15. +--------------------+
  16. | Database           |
  17. +--------------------+
  18. | information_schema |
  19. | mysql              |
  20. | performance_schema |
  21. | tarena             |
  22. | test               |
  23. +--------------------+
  24. [[email protected] ~]#
  25. [[email protected] ~]# mysql -h192.168.4.202 -uroot -ppwd123 -e "show databases"
  26. Warning: Using a password on the command line interface can be insecure.
  27. +--------------------+
  28. | Database           |
  29. +--------------------+
  30. | information_schema |
  31. | mysql              |
  32. | performance_schema |
  33. | tarena             |
  34. | test               |
  35. +--------------------+

2主数据库宕机测试

  1. [[email protected] ~]# service mysql stop                    //停止master1上服务
  2. Shutting down MySQL....                                    [确定]
  3. [[email protected] ~]#
  4. [[email protected] ~]# mmm_control show                        //查看集群内服务器状态

通过输出信息可以看到虚拟IP从master1切换到master2

  1. master1(192.168.4.10) master/HARD_OFFLINE. Roles:
  2. master2(192.168.4.11) master/ONLINE. Roles: writer(192.168.4.200)
  3. slave1(192.168.4.12) slave/ONLINE. Roles: reader(192.168.4.201)
  4. slave2(192.168.4.13) slave/ONLINE. Roles: reader(192.168.4.202)
  5. [[email protected] ~]#
  6. [[email protected] ~]# mysql -h192.168.4.200 -uroot -ppwd123 -e "show databases"    //访问虚拟IP测试
  7. Warning: Using a password on the command line interface can be insecure.
  8. +--------------------+
  9. | Database           |
  10. +--------------------+
  11. | information_schema |
  12. | mysql              |
  13. | performance_schema |
  14. | tarena             |
  15. | test               |
  16. +--------------------+
时间: 2024-10-12 03:38:40

MySQL-MMM架构部署的相关文章

mysql mmm架构看不到vip地址

自己搭建好mysql mmm(Master-Master Replication Manager)高可用架构后看不到vip地址,经过在网上找了大量的文章和自己平时的观察终于发现找出vip地址的方法了,现在分享给大家. 1.在mmm监控服务器查看各节点的状态 [[email protected] bin]# mmm_control  show  db2(192.168.56.105) master/ONLINE. Roles: writer(192.168.56.100)  node1(192.1

CENTOS6.6下mysql MMM架构搭建

本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序.MMM使用Perl语言开发,主要用来监控和管理MySQL Master-Master(双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时刻备选主的预热,可

MySQL 高可用MMM安装部署以及故障转移详细资料汇总

1,      mmm简介 MMM(Master-Masterreplication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序.MMM使用Perl语言开发,主要用来监控和管理MySQL Master-Master(双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时刻备选主的预热,可以说MMM这套脚本程序一方面实现了故障切换的功能,另一方面其内部附加的工具脚本也可以实现多个slave的r

MMM架构实现MySQL高可用读写分离(进阶版,包含Amoeba)

前两天逛博客偶然发现了某大神写的关于MMM的文章,看完就迫不及待的自己试了一下,大神写的很顺畅,以为自己也能操作的很顺畅,但是实际情况是手脚太不麻利,碰到很多坑,如果大神的文章是"平地起高楼",那我这篇则是"平房起别墅",因为我生产环境中已经有两台Mysql做双主同步,这篇文章说的是如何改造升级现有架构! 环境介绍: IP 操作系统 数据库 软件 角色/VIP 192.168.6.109 CentOS7.2 Mysql5.6-34 mysql-mmm2.2.1-15

MySQL主从多种架构部署及常见错误问题解析

本文的主要内容有mysql复制原理,mysql一主多从.双主架构的示例解读,以及mysql在主从复制架构实践中的常见错误问题和解决方法. 一 mysql复制原理 1 原理解读 mysql的复制(replication)是异步复制,即从一个mysql实列或端口(Master)复制到另一个mysql实列的或端口(slave):复制操作由3个进程完成,其中2个(SQL进程和I/O进程)在Slave上,另一个在Master上:要实现复制,必须打开Master端的二进制日志(log-bin),log-bi

LVS+Keepalived+Squid+Nginx+MySQL主从高性能集群架构部署方案

方案一,在tomcat的workers.properties里面配置相关条件 worker.tomcat.lbfactor=50 worker.tomcat.cachesize=10 worker.tomcat.cache_timeout=600 worker.tomcat.socket_keepalive=1 worker.tomcat.socket_timeout=300 Linux内核优化: vi /etc/sysctl.conf   # 编辑sysctl.conf文件添加以下内容net.

MySQL+Heartbeat+DRBD架构部署

MySQL高可用生成业务需求 在企业实际生产场景中,一主多从的MYSQL数据库架构是最常用的DB架构方案,该架构方案部署简单,维护方便,并且通过配置简单的代理或者通过程序的方式就可以实现应用服务队主从库的读写分离,且多个从库还可以通过LVS或者Haproxy等代理实现多个从库的负载均衡,分担读的压力,同时排除单点问题 但是MYSQL数据库架构中,我们不难发现,虽然从库是多个,但是主库仅有一个,也就是说主库一旦宕机,所以写的业务都会终止,而从库宕机1个就没什么影响,那么如何解决这个主库单点的问题呢

MMM架构方案与实施

             MMM架构方案与实施 MMM即Master-Master Replication Manager for MySQL(mysql主主复制管理器),是关于mysql主主复制配置的监控.故障转移和管理的一套可伸缩的脚本套件(在任何时候只有一个节点可以被写入),这个套件也能基于标准的主从配置的任意数量的从服务器进行读负载均衡,所以你可以用它来在一组居于复制的服务器启动虚拟ip,除此之外,它还有实现数据备份.节点之间重新同步功能的脚本. MySQL本身没有提供replicati

部署集群基础环境,MySQL-MMM架构部署,MySQL-MMM架构使用

部署集群基础环境 1.1 问题 本案例要求为MySQL集群准备基础环境,完成以下任务操作: 数据库授权 部署MySQL双主多从结构 配置本机hosts解析记录 1.2 方案 使用4台RHEL 6虚拟机,如图-1所示.其中192.168.4.10.192.168.4.11作为MySQL双主服务器,192.168.4.12.192.168.4.13作为主服务器的从服务器. 图-1 1.3 步骤 实现此案例需要按照如下步骤进行. 步骤一:准备环境 [[email protected] ~]# cat