文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL - MMM 实现 MySQL 高可用

2024-04-02 19:55

关注
  • 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 服务器进行双机热备。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯