MMM(MYsql主主复制管理器解决方案

MMM(Masterr-Master Replication Manage for Mysql)MYsql主主复制管理器解决方案实现99%SLA:典型应用是双主多从架构

    MMM集群方案将读IP和写IP从数据库层面提取出来,只业务系统中只需调用即可实现读写分离。同一时刻只有一个master是可写的

   mmm_mond:监控进程运行在管理节点上,决定和处理所有节点的角色转换

  mmm_agentd:代理进程,运行在每台mysql服务器上,主要完成监控的测试工作以及简单的远程服务配置

  mmm_control:用来查看和管理运行状态,同时管理mmm_mond进程 

 

    缺点:需要多个节点多个Ip,读写繁忙时不稳定,不适应数据安全性要求高,读写频繁的环境

   双master架构需要五个ip,两个固定ip分别在节点上,两个只读ip和一个可写ip。当主节点故障,它的读写Ip都转移到备用节点上,后端的slave节点也转向备用节点

    

    配置文件介绍:mmm_mon.conf在MMM管理端配置设置一些监控参数,mmm_common.conf需要在所有的MMM集群节点进行配置,内容完全一样,用于设置读写节点的IP及配置虚拟ip,mmm_agent.conf也需要在所有节点配置,用于设置每个节点的标识

  

   安装与配置:双主双从配置一台monitor,两台master,两台slave

  1.     装一个epel-release-6-8.noarch.rpm 源包

  2.     yum -y install mysql-mmm*在monitor节点上

  3.     yum -y install mysql-mmm-agent* 在每个MysqlDB上 

  4.     先配置好Master1和Master2主主同步

  5.     再配置好Master1到slave1和2中间的主从同步,记得要填Master1的物理IP地址

  6.     在所有的Mysql主机上设置read_only=1参数  ,两个例外replication threads和root用户不受限制

  7.     在所有mysql节点上创建除复制账号之外的两个账户mmm_monitor(管理服务器用来做健康检查的)mmm_agent(切换只读模式和同步master信息的)

                   grant replication client on *.* to 'mmm_monitor'@'192.168.1.%' identified by '123123';
                    grant super,replication client,process on *.* to 'mmm_agent'@'192.168.1.%' identified by '123123'

     8.配置mmm_common.conf

              active_master_role   writer #都要先设置read-only=1,MMM设置写角色时自动打开

              <host default>

                    cluster_interface            eth0 #配置的网络接口,注意这里不能指定为子接口

                    pid_path        /var/run/mysql-mmm/mmm_agentd.pid #设置PID位置

                    bin_path        /usr/libexec/mysql-mmm #设定MMM可执行文件路径

                    replication_user        repl_user  #设置复制的文件名    replication_password  123123密码

                    agent_user     mmm_agent  #设置更改只读操作的用户  agent_password        agent_password

                </host>

                <host db1>

                       ip            192.168.1.101

                        mod     master  

                        peer    db2 #设置与db1对等

                </host>  #db2相同,改一下数字即可

                <host db3>

                ip        192.168.1.103

                mode    slave

                </host>对应的,改一下数字即可

                <role writer>设置可写角色

                    hosts  db1,db2

                    ips   192.168.1.110

                    mode  exclusive  #互斥模式,只允许分配给一个IP

                    </role>

                   <role reader>可读角色

                        hosts    db1,db2,db3,db4

                        ips    192.168.1.111 , 192.168.1.112 , 192.168.1.113 , 192.168.1.114

                        mode balanced  #负载均衡,动态分配给多台MYsql主机

                    </role>

       9.配置mmm_agent.conf主要用来定义集群中的主机

        include mmm_common.conf

         this db1   #其他几个以此类推234

       

        10.mmm_mon.conf配置(在管理节点上)

        include mmm_common.conf

        <monitor>

        ip        127.0.0.1

            pid_path        /var/run/mysql-mmm/mmm_mond.pid

            bin_path        /usr/libexec/mysql-mmm  

            status_path    /var/lib/mysql-mmm/mmm_mond.status #集群的状态文件

            ping_ips    192.168.1.1,192.168.1.101,192.168.1.102,192.168.1.110,192.168.1.111  #测试可用性的Ip列表

            flap_duration       3600  #抖动的时间范围

            flap_count            3   #时间范围内抖动的最大次数

        auto_set_online        0  #是否设置自动上线,如果大于零,抖动主机在抖动时间范围过后自动上线

      </monitor>

    <host default>

        monitor_user        mmm_monitor   #monitor账号

        monitor_password  monitor_password  #密码

      </host>

   debug 0正常模式,1为debug模式

    11.配置mysql-mmm-agent文件 ENABLED=1

MMM集群服务管理:/etc/init.d/mysql-mmm-monitor 集群控制端开启与关闭

                                    /etc/init.d/mysql-mmm-agent  服务节点开启与关闭

查看集群运行状态:mmm_control  help查看用法,或者在每个节点的/var/log/mysql-mmm目录下查看日志文件

mmm_control checks all检查所有,check db1检查db1  

show查看状态,move_role writer db1切换回来

高性能linux服务器构建p374 MMM整合Amoeba


你可能感兴趣的:(MMM(MYsql主主复制管理器解决方案)