千家信息网

MySQL—MMM高可用群集的搭建(全过程,纯干货~~)

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,本篇文章主要介绍搭建MMM方案以及MMM架构的原理。MMM方案不适用对数据一致性要求很高的业务。下面一起来学习学习。先来看看具体的架构拓扑,如下:其中,角色HostsIP地址应用属性VIPmaster
千家信息网最后更新 2025年02月01日MySQL—MMM高可用群集的搭建(全过程,纯干货~~)

本篇文章主要介绍搭建MMM方案以及MMM架构的原理。MMM方案不适用对数据一致性要求很高的业务。下面一起来学习学习。

先来看看具体的架构拓扑,如下:

其中,

角色HostsIP地址应用属性VIP
master1master192.168.142.135write192.168.142.188
master2backup192.168.142.132write|read192.168.142.188
slave1slave192.168.142.136read192.168.142.200, 192.168.142.210
slave2slave192.168.142.137read192.168.142.200, 192.168.142.210
monitormonitor192.168.142.143moitor无VIP

具体配置步骤

一、实验环境配置

配置ALI云源(若已安装可跳过)

这里以master1作示范,实际五台均需要安装

[root@master1 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo[root@master1 ~]# yum -y install epel-release[root@master1 ~]# yum clean all && yum makecache

给所有主从服务器安装MySQL,并配置

[root@master1 ~]# yum install mysql -y[root@master1 ~]# vim /etc/my.cnf      #修改配置文件    ##server id不能一样    server-id =    log-bin = zhu-bin    log-slave-updates = ture    ##开启主从同步    sync_binlog = 1   ##二进制文件立即写入    auto_increment_increment=2           ###增量为2       auto_increment_offset=1               ######  起始值为1[root@master1 ~]# systemctl restart mysqld[root@master1 ~]# systemctl enable mysqld

二、配置主主同步(两个主服务器相互复制,互相平级)

m1给m2从权限,m2给m1从权限

[root@master1 ~]# mysql -u root -pgrant replication slave on *.* to 'myslave'@'192.168.142.%' identified by 'asd123';    #允许从服务器使用myslave账户在主服务器上进行复制操作(两台主均要授权)show master status;+------------------+----------+--------------+--------------------------+| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB         |+------------------+----------+--------------+--------------------------+| mysql_bin.000001 |      245 |              | mysql,information_schema |+------------------+----------+--------------+--------------------------+1 row in set (0.00 sec)    #查看作为主服务器的信息,关键点为position号码change master to master_host='主服务器地址',master_user='myslave',master_password='asd123',master_log_file='File',master_log_pos=position号码;    ##授予权限(m1为m2的主,m2为m1的主)start slave;show slave status\G    Slave_IO_Running: Yes    Slave_SQL_Running: Yes    #查看作为从服务器的信息,是否同步开启

三、进行主从同步(两台从指一台同一台主)

配置两台从服务器指向master1

[root@slave1 ~]# vim /etc/my.cnf    server-id = 6    #不能有相同的    log-bin=mysql-bin    log-slave-updates=ture    sync_binlog = 1[root@slave1 ~]# systemctl restart mysqld[root@slave1 ~]# netstat -atnp | grep 3306tcp6       0      0 :::3306                 :::*                    LISTEN      38831/mysqld#提权,指向master1(两台从操作相同!!!!!)[root@slave1 ~]# mysql -uroot -pchange master to master_host='主服务器地址',master_user='myslave',master_password='asd123',master_log_file='主服务器查看到的信息',master_log_pos=号码;    ##授予权限(slave1、slave2为master1的从)start slave;show slave status\G    Slave_IO_Running: Yes    Slave_SQL_Running: Yes    #查看作为从服务器的信息,是否同步开启

四、所有服务器安装并配置MMM

修改mmm_common配置文件

[root@master1 ~]# yum -y install mysql-mmm*#修改MMM配置文件[root@master1 ~]# vim /etc/mysql-mmm/mmm_common.confcluster_interface       ens33......replication_user        myslave     #从服务器访问主服务器账户replication_password    asd123agent_user              mmm_user    #MMM用户账户agent_password          123123    ip      192.168.142.135        #master1的IP地址    mode    master    peer    db2    ip      192.168.142.132        #master2的IP地址    mode    master    peer    db1    ip      192.168.142.136        #slave1的IP地址    mode    slave    ip      192.168.142.137        #slave2的IP地址    mode    slave    hosts   db1, db2    ips     192.168.142.188       ###VIP虚拟IP地址    mode    exclusive    hosts   db3, db4    ips     192.168.142.200, 192.168.142.210      ###VIP虚拟IP地址    mode    balanced#scp远程复制,将配置远程推送[root@master1 ~]# scp /etc/mysql-mmm/mmm_common.conf root@192.168.142.132:/etc/mysql-mmm/[root@master1 ~]# scp /etc/mysql-mmm/mmm_common.conf root@192.168.142.136:/etc/mysql-mmm/[root@master1 ~]# scp /etc/mysql-mmm/mmm_common.conf root@192.168.142.137:/etc/mysql-mmm/[root@master1 ~]# scp /etc/mysql-mmm/mmm_common.conf root@192.168.142.143:/etc/mysql-mmm/

修改mmm_monitor配置文件(仅monitor监听端)

[root@localhost ~]# vim /etc/mysql-mmm/mmm_mon.conf    ......    ping_ips            192.168.142.135,192.168.142.132,192.168.142.136,192.168.142.137     #所有主从服务器IP地址    auto_set_online     5    #等待上线时间    monitor_user        mmm_monitor     ##创建监控用户    monitor_password    123123

在所有主从数据库中(MMM用户、监控用户)进行提权

[root@master1 ~]# mysql -u root -pgrant super,replication client,process on *.* to 'mmm_user'@'192.168.142.%' identified by '123123';grant replication client on *.* to 'mmm_monitor'@'192.168.142.%' identified by '123123';flush privileges##每台主从都要提权

修改agant配置文件(每台主从都要修改)

位置:/etc/mysql-mmm/mmm_agent.conf

[root@master1 ~]# vim /etc/mysql-mmm/mmm_agent.confthis db1(对应的角色)

五、开启服务

所有主从服务器开启mmm_agant服务

[root@master1 ~]# systemctl start mysql-mmm-agent.service [root@master1 ~]# systemctl enable mysql-mmm-agent.service 

监控端开启mmm_monitor服务

[root@localhost ~]# systemctl stop firewalld.service [root@localhost ~]# setenforce 0[root@localhost ~]# systemctl start mysql-mmm-monitor.service[root@localhost ~]# mmm_control show   ##查看监控状态

六、验证结果

[root@localhost mysql-mmm]# mmm_control show  db1(192.168.142.135) master/ONLINE. Roles: writer(192.168.18.250)  db2(192.168.142.132) master/ONLINE. Roles:   db3(192.168.142.136) slave/ONLINE. Roles: reader(192.168.18.251)  db4(192.168.142.137) slave/ONLINE. Roles: reader(192.168.18.252)//利用命令调整虚拟IP切换至master2:[root@localhost mysql-mmm]# mmm_control move_role writer db2OK: Role 'writer' has been moved from 'db1' to 'db2'. Now you can wait some time and check new roles info![root@localhost mysql-mmm]# mmm_control show  db1(192.168.142.135) master/ONLINE. Roles:   db2(192.168.142.132) master/ONLINE. Roles: writer(192.168.18.250)  db3(192.168.142.136) slave/ONLINE. Roles: reader(192.168.18.251)  db4(192.168.142.137) slave/ONLINE. Roles: reader(192.168.18.252)//检测所有状态是否都正常:[root@localhost mysql-mmm]# mmm_control checks alldb4  ping         [last change: 2019/11/25 15:25:54]  OKdb4  mysql        [last change: 2019/11/25 15:25:54]  OKdb4  rep_threads  [last change: 2019/11/25 15:25:54]  OKdb4  rep_backlog  [last change: 2019/11/25 15:25:54]  OK: Backlog is nulldb2  ping         [last change: 2019/11/25 15:25:54]  OKdb2  mysql        [last change: 2019/11/25 15:25:54]  OKdb2  rep_threads  [last change: 2019/11/25 15:25:54]  OKdb2  rep_backlog  [last change: 2019/11/25 15:25:54]  OK: Backlog is nulldb3  ping         [last change: 2019/11/25 15:25:54]  OKdb3  mysql        [last change: 2019/11/25 15:25:54]  OKdb3  rep_threads  [last change: 2019/11/25 15:25:54]  OKdb3  rep_backlog  [last change: 2019/11/25 15:25:54]  OK: Backlog is nulldb1  ping         [last change: 2019/11/25 15:25:54]  OKdb1  mysql        [last change: 2019/11/25 15:25:54]  OKdb1  rep_threads  [last change: 2019/11/25 15:25:54]  OKdb1  rep_backlog  [last change: 2019/11/25 15:25:54]  OK: Backlog is null

以上就是MMM群集搭建的全过程,感谢阅读!!

服务 服务器 配置 地址 主从 文件 同步 信息 权限 用户 监控 号码 账户 相同 指向 数据 方案 架构 状态 角色 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库和数据编码格式 千翼网络技术 数据库建表怎么删除 国内软件开发大事 服务器管理和普通接口区别 java二级要考数据库吗 jsp登陆数据库 后台服务器内存满了怎么办 阿里云搭建方舟服务器 软件开发方面的成就 我的世界密室杀手服务器怎么开箱 计算机网络技术与实现论文 华为鲲鹏服务器供应价格 苏州逆鳞互联网科技发展有限公司 c语言和网络技术能同时报名吗 软件开发比作高楼 江苏好的软件开发品质保障 剑侠情缘三 服务器 阿里巴巴网络安全合作伙伴 苏州h3c塔式服务器厂家 服务器http管理员密码 网络安全智能运维系统 电商平台数据库设计 王牌战争最容易上分的服务器 三星手机备份的数据在哪个服务器 山东崇越网络技术有限公司 我的世界 极限生存服务器 动态表格 怎么设计数据库结构 软件开发团队执行弹性作息 最近关于网络安全事件
0