MySQL—MMM高可用群集的搭建(全过程,纯干货~~)
发表于:2024-09-25 作者:千家信息网编辑
千家信息网最后更新 2024年09月25日,本篇文章主要介绍搭建MMM方案以及MMM架构的原理。MMM方案不适用对数据一致性要求很高的业务。下面一起来学习学习。先来看看具体的架构拓扑,如下:其中,角色HostsIP地址应用属性VIPmaster
千家信息网最后更新 2024年09月25日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安全错误
数据库的锁怎样保障安全
易语言数据库需要关闭
哪种软件不属于网络安全
电子嵌入式软件开发的报价
河北腾讯数据库
忍者必须死oppo服务器
多串口服务器 ip
交警支队网络安全
传奇怪物数据库在那个文件
软件开发的pm
pkpm 提取数据库
网络安全上网的重要性
出租屋数据库课程设计
软件开发接口对接用什么图
北京星姿互联网科技有限公司
软件开发项目网站
hello mc服务器
盐城海航软件开发诚信合作
淮安进口刀片服务器
数据库开发项目管理
玩游戏提示服务器到期
海康流媒体管理服务器
玉溪大量回收服务器
网络安全反恐题材电视剧
每个人都该学点网络安全的原因
win10配置域名映射到服务器
温州伟光网络技术工作室
三亚app软件开发
网络安全运维管理规范
王牌机战查看服务器
大学专科网络技术事业编制