MySQL—MMM高可用群集的搭建(全过程,纯干货~~)
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,本篇文章主要介绍搭建MMM方案以及MMM架构的原理。MMM方案不适用对数据一致性要求很高的业务。下面一起来学习学习。先来看看具体的架构拓扑,如下:其中,角色HostsIP地址应用属性VIPmaster
千家信息网最后更新 2025年02月01日MySQL—MMM高可用群集的搭建(全过程,纯干货~~)
本篇文章主要介绍搭建MMM方案以及MMM架构的原理。MMM方案不适用对数据一致性要求很高的业务。下面一起来学习学习。
先来看看具体的架构拓扑,如下:
其中,
角色 | Hosts | IP地址 | 应用属性 | VIP |
---|---|---|---|---|
master1 | master | 192.168.142.135 | write | 192.168.142.188 |
master2 | backup | 192.168.142.132 | write|read | 192.168.142.188 |
slave1 | slave | 192.168.142.136 | read | 192.168.142.200, 192.168.142.210 |
slave2 | slave | 192.168.142.137 | read | 192.168.142.200, 192.168.142.210 |
monitor | monitor | 192.168.142.143 | moitor | 无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管理员密码
网络安全智能运维系统
电商平台数据库设计
王牌战争最容易上分的服务器
三星手机备份的数据在哪个服务器
山东崇越网络技术有限公司
我的世界 极限生存服务器
动态表格 怎么设计数据库结构
软件开发团队执行弹性作息
最近关于网络安全事件