028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

MySQL-MMM实现MySQL高可用

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

    栾城网站建设公司创新互联,栾城网站设计制作,有大型网站制作公司丰富经验。已为栾城上千提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的栾城做网站的公司定做!

  • MMM提供了自动和手动两种方式移除一组服务器中复制延迟较高的服务器的虚拟 ip,同时它还可以备份数据,实现两节点之间的数据同步等。由于 MMM 无法完全保证数据的一致性,所以 MMM 适用于对数据的一致性要求不是很高,但是又想最大程度的保证业务可用性的场景。对于那些对数据的一致性要求很高的业务,非常不建议采用 MMM 这种高可用架构。

  • 关于 MMM 高可用架构的说明如下:
    mmm_mon:监控进程,负责所有的监控工作,决定和处理所有节点角色活动。此脚本需要在监管机上运行。
    mmm_agent:运行在每个 MySQL 服务器上的代理进程,完成监控的探针工作和执行简单的远端服务shezhi.cijiaoben需要在被监管机上运行。
    mmm_control:一个简单的脚本,提供管理 mmm_mond 进程的命令。
    mysql-mmm 的监管端会提供多个虚拟 IP (VIP),包括一个可写 VIP,多个可读 VIP,通过监管的管理,这些 IP 会绑定在可用 MySQL 之上,当某一台 MySQL 宕机时,监管会将 VIP 迁移至其他 MySQL。

部署环境

主机操作系统IP地址VIP地址
mysql-m1主服务器 CentOS 7.4 x86_64 192.168.100.200 192.168.100.100(Writer)
mysql-m2主服务器 CentOS 7.4 x86_64 192.168.100.201 192.168.100.100(Writer)
mysql-monitor CentOS 7.4 x86_64 192.168.100.204
mysql-m3从服务器 CentOS 7.4 x86_64 192.168.100.202 192.168.100.101(Reader)
mysql-m4从服务器 CentOS 7.4 x86_64 192.168.100.203 192.168.100.102(Reader)

开始部署

  1. 搭建ALI云源,安装epel-release源。

    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo    #下载ALI云源
    yum -y install epel-release    #安装epel-release源
    yum clean all && yum makecache    #清空缓存,生成新的缓存文件
  2. 安装 MariaDB 数据库,开启服务(和MySQL同源,搭建步骤相同)

    yum -y install mariadb-server mariadb
    systemctl stop firewalld.service
    setenforce 0
    systemctl start mariadb
  3. 修改数据库主配置文件,发往其他主机并启动服务器
    # vim /etc/my.cnf
    [mysqld]
    log_error=/var/lib/mysql/mysql.err    #错误日志文件位置
    log=/var/lib/mysql/mysql_log.log    #访问日志文件位置
    log_slow_queries=/var/lib/mysql_slow_queris.log    #慢日志文件位置
    binlog-ignore-db=mysql,information_schema    #不生成二进制文件的库
    character_set_server=utf8    #使用的字符集
    log_bin=mysql_bin    #二进制日志文件功能
    server_id=1
    log_slave_updates=true    #开启同步
    sync_binlog=1
    auto_increment_increment=2
    auto_increment_offset=1
    # scp /etc/my.cnf root@192.168.100.201:/etc
    # scp /etc/my.cnf root@192.168.100.202:/etc
    # scp /etc/my.cnf root@192.168.100.203:/etc
    # 注:另外三台主机的配置文件里的server_id要做修改,保证不一致即可

至此,MySQL-MMM已经部署成功,进一步的话,我们可以结合Amoeba实现读写分离,Writer 的虚拟VIP可以写入数据库,而 Reader 可以用来读取数据。并通过Keepalived对 monitor 服务器进行双机热备。


分享文章:MySQL-MMM实现MySQL高可用
网页地址:http://www.tsicrk.com/article/gceics.html

其他资讯

让你的专属顾问为你服务

2.1703s