Centos7 下 mysql5.7-mmm 高可用群集
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,Centos7 下 mysql5.7-mmm 高可用群集MMM介绍MMM( Master- Master replication manager for MYSQL, MYSQL主主复制管理器)是一套
千家信息网最后更新 2025年01月23日Centos7 下 mysql5.7-mmm 高可用群集
Centos7 下 mysql5.7-mmm 高可用群集
MMM介绍
MMM( Master- Master replication manager for MYSQL, MYSQL主主复制管理器)
是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语言开发,主要用来监控和管理 MYSQL master-master(双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时备选主的预热,可以说MMM这套脚本程序一方面实现了故障切换的功能
另一方面其内部附加的工具脚本也可以实现多个 Slave的read负载均衡。
实验准备
4台安装mysql5.7服务的设备
1台用来安装mmm的centos7设备
实验步骤
关闭防火墙自启动,以及相关功能和增强性安全功能
systemctl stop firewalld.service setenforce 0
配置ALI云源,然后安装epel-release源。
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repoyum -y install epel-releaseyum clean all && yum makecache
修改mysql服务器的配置文件
vim /etc/my.cnf修改mysqld下面的内容[mysqld]log_error=/var/lib/mysql/mysql.errlog=/var/lib/mysql/mysql_log.loglog_slow_queries=/var/lib/mysql_slow_queris.logbinlog-ignore-db=mysql,information_schemacharacter_set_server=utf8log_bin=mysql_binserver_id=1log_slave_updates=truesync_binlog=1auto_increment_increment=2auto_increment_offset=1systemctl restart mysqld-------没有问题后,把配置文件复制到其它3台数据库服务器上并启动服务器-----scp /etc/my.cnf root@192.168.100.101:/etc/scp /etc/my.cnf root@192.168.100.102:/etc/scp /etc/my.cnf root@192.168.100.103:/etc/-----注意:配置文件中的server_id 要修改-----
配置主主复制,两台主服务器相互复制
show master status; +-------------------+----------+--------------+------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |+-------------------+----------+--------------+------------------+| master-bin.000002 | 339 | | |+-------------------+----------+--------------+------------------+1 row in set (0.00 sec) ##记录日志文件名称和 位置值,在两台主上查看。----在m1上为m2授予从的权限,在m2上也要为m1授予从的权限---grant replication slave on *.* to 'replication'@'192.168.100.%' identified by '123456'; ##两台主服务器都执行,从服务器不需要change master to master_host='192.168.100.101',master_user='replication',master_password='123456',master_log_file='mysql_bin.000002',master_log_pos=339;-----注意,在m1上要指定m2上的日志文件名,和位置参数-----在m2上要反过来。start slave;show slave status; Slave_IO_Running: Yes Slave_SQL_Running: Yes-------在另一台主上做----要指定m1的日志和位置参数---change master to master_host='192.168.100.100',master_user='replication',master_password='123456',master_log_file='mysql_bin.000002',master_log_pos=339;start slave;show slave status; Slave_IO_Running: Yes Slave_SQL_Running: Yes
配置主从复制
change master to master_host='192.168.100.100',master_user='replication',master_password='123456',master_log_file='mysql_bin.000002',master_log_pos=339;start slave;show slave status; Slave_IO_Running: Yes Slave_SQL_Running: Yes
安装MMM
在所有服务器上安装-----注意,epel源要配置好
yum -y install mysql-mmm*
配置mmm
cd /etc/mysql-mmm/vi mmm_common.conf ##所有主机上都要配置,直接复制多份 cluster_interface ens33 …… replication_user replication replication_password 123456 agent_user mmm_agent agent_password 123456 ip 192.168.100.100 mode master peer db2 ip 192.168.100.101 mode master peer db1 ip 192.168.100.102 mode slave ip 192.168.100.103 mode slave hosts db1, db2 ips 192.168.100.200 mode exclusive hosts db3, db4 ips 192.168.100.201, 192.168.100.202 mode balanced scp mmm_common.conf root@192.168.100.100:/etc/mysql-mmm/scp mmm_common.conf root@192.168.100.101:/etc/mysql-mmm/scp mmm_common.conf root@192.168.100.102:/etc/mysql-mmm/scp mmm_common.conf root@192.168.100.103:/etc/mysql-mmm/ ## 复制给mysql服务器------------------在monitor服务器上配置----cd /etc/mysql-mmm/ //改密码vi mmm_mon.conf monitor_user mmm_monitor monitor_password 123456 --------------在所有数据库上为mmm_agent授权-----grant super, replication client, process on *.* to 'mmm_agent'@'192.168.100.%' identified by '123456';--------------在所有数据库上为mmm_moniter授权-----grant replication client on *.* to 'mmm_monitor'@'192.168.100.%' identified by '123456';flush privileges;---------------修改所有数据库的mmm_agent.conf----vi /etc/mysql-mmm/mmm_agent.confthis db1 ##主1 主2 从1 从2 分别为 db{1,2,3,4}--------------在所有数据库服务器上启动mysql-mmm-agent---systemctl start mysql-mmm-agent.servicesystemctl enable mysql-mmm-agent.service------------------在monitor服务器上配置------cd /etc/mysql-mmm/vi mmm_mon.conf…… ping_ips 192.168.100.100,192.168.100.101,192.168.100.102,192.168.100.103 ##数据库服务器地址 auto_set_online 10systemctl start mysql-mmm-monitor.service ##启动mysql-mmm-monitor mmm_control show ##查看各节点的情况 db1(192.168.100.100) master/ONLINE. Roles: writer(192.168.100.200) db2(192.168.100.101) master/ONLINE. Roles: db3(192.168.100.102) slave/ONLINE. Roles: reader(192.168.100.201) db4(192.168.100.103) slave/ONLINE. Roles: reader(192.168.100.202)mmm_control checks all ## 需要各种OKmmm_control move_role writer db1 ##手动转换角色
测试
关掉主1 的mysql服务systemctl stop mysqldmmm_control show ##查看各节点的情况 db1(192.168.100.100) master/HARD_OFFLINE. Roles: db2(192.168.100.101) master/ONLINE. Roles: writer(192.168.100.200) db3(192.168.100.102) slave/ONLINE. Roles: reader(192.168.100.201) db4(192.168.100.103) slave/ONLINE. Roles: reader(192.168.100.202)关掉从1的mysql服务mmm_control show ##查看各节点的情况 db1(192.168.100.100) master/HARD_OFFLINE. Roles: db2(192.168.100.101) master/ONLINE. Roles: writer(192.168.100.200) db3(192.168.100.102) slave/HARD_OFFLINEE. Roles: db4(192.168.100.103) slave/ONLINE. Roles: reader(192.168.100.201,192.168.100.202)
至此,通过mmm完成mysql高可用群集
服务
服务器
配置
数据
数据库
文件
位置
功能
情况
日志
脚本
节点
切换
管理
参数
故障
文件名
权限
程序
设备
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
计算机网络安全(第2版)
特大城市数据库
未来科技与互联网区别
小学寒假网络安全保障工作总结
梦非凡网络技术
怀柔区一站式网络技术质量保证
如何筑牢网络安全屏障
原神国际服4个服务器互通吗
我的世界球球大作战服务器
为什么软件要开发数据库
苹果x怎么清理缓存数据库
wos服务器发生内部错误
手机服务器出错
黄河鲲鹏服务器及pc机许昌
全球大学生网络安全
网络安全宣传周专栏
软件开发为什么工资
虚拟机网络安全吗
服务器蠕虫病毒怎么消除
从化数据库恢复
数据库是如何备份的面试题
网络安全产业正迎新拐点
语音对讲软件开发流程
网络安全挑战漫画
软件开发者系统详细设计书
4大安全网络安全
苹果x怎么清理缓存数据库
201华为网络技术大赛
大专计算机网络技术专业特点
服务器攻击流量测试